spring security中配置密码为md5的带salt加密

spring security中配置密码为md5的带salt加密

service:

private Md5PasswordEncoder encoder; //spring security md5

public Md5PasswordEncoder getEncoder() {

return encoder;

}

@Resource

public void setEncoder(Md5PasswordEncoder encoder) {

this.encoder = encoder;

}

@Override

public void addUser(User user) {

//把加密后的密码,赋值给user password

//盐为 user name

user.setPassword(encoder.encodePassword(user.getPassword(), user.getName()));

userDAO.addUser(user);

}

jt.executeUpdate(new StringSql(

"insert
into VDB_USERS (USERID,PASSWORD) values (?,?)",

uid,
new Md5PasswordEncoder().encodePassword(up, uid)));

//new Md5PasswordEncoder().encodePassword(up,
uid)

此处的Md5PasswordEncoder为spring自带的md5加密类,其中第一个参数up为密码,uid为盐值

applicationContext-security.xml:

<!-- 配置认证管理器
实现用户认证的入口,主要实现UserDetailsService接口即可
-->

<authentication-manager
alias="authenticationManager">

<!--

<authentication-provider
ref="principalProvider"></authentication-provider>

-->

<!--
使用自定义userDetailService -->

<authentication-provider
user-service-ref="userService">

<!-- 使用MD5对密码进行加密
-->

<password-encoder
hash="md5">

<!--
盐,根据用户name作为盐 -->

<salt-source
user-property="name"/>

</password-encoder>

<!--

<security:user-service>

<security:user
name="admin"

password="2l232f297a57a5a748394a0e4a80lfc3"

authorities="ROLE_USER"
/>

<security:user
name="user" password="user"

authorities="ROLE_USER"
/>

</security:user-service>

-->

<!--
默认test.user表。。。 -->

<!--

时间: 2024-08-06 06:04:59

spring security中配置密码为md5的带salt加密的相关文章

spring boot跨域请求访问配置以及spring security中配置失效的原理解析

一.同源策略 同源策略[same origin policy]是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源. 同源策略是浏览器安全的基石. 什么是源 源[origin]就是协议.域名和端口号.例如:http://www.baidu.com:80这个URL. 什么是同源 若地址里面的协议.域名和端口号均相同则属于同源. 是否是同源的判断 例如判断下面的URL是否与 http://www.a.com/test/index.html 同源 http://www.a

Spring Security 从配置入门 学习讲解。刽子手------------securityConfig.xml

不知道我的web.xml 大家都理解了没.  废话确实有点多,可能很多知识点,大家都知道,可是我学的时候,压根什么都不懂啊.... 这篇我们要讲刽子手  securityConfig. 为什么要说他是刽子手呢?  因为他是无良掌柜的小工,直接的操盘手...... <?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org

Spring Security中html页面设置hasRole无效的问题

Spring Security中html页面设置hasRole无效的问题 一.前言 学了几天的spring Security,偶然发现的hasRole和hasAnyAuthority的区别.当然,可能有更深入的我没看到.现在把我实际的调试结果分享给大家 二.失效原因及解决 下面是部分示例html页面代码 <div sec:authorize="hasRole('R_ADMIN')">   <p class="bg-info">权限0001可见

spring security 5.0 密码未加密报错

使用spring security5.0后,配置文件中直接写普通的密码如:123456,会报错: java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null" 这是因为spring security5.0以后默认需要选择密码加密方式,如果还像之前版本直接配置未加密密码,就会报上面这个错误当然啦,如果还想用简单密码的话,spring security还是给了两个方案,一种是

Spring Security OAuth2 Demo —— 密码模式(Password)

前情回顾 前几节分享了OAuth2的流程与授权码模式和隐式授权模式两种的Demo,我们了解到授权码模式是OAuth2四种模式流程最复杂模式,复杂程度由大至小:授权码模式 > 隐式授权模式 > 密码模式 > 客户端模式 其中密码模式的流程是:让用户填写表单提交到授权服务器,表单中包含用户的用户名.密码.客户端的id和密钥的加密串,授权服务器先解析并校验客户端信息,然后校验用户信息,完全通过返回access_token,否则默认都是401 http状态码,提示未授权无法访问 本文目标 编写与

Spring Security 从配置入门 学习讲解。万恶之源------------web.xml

这段时间,工作闲了下来,接触了Spring Security,对于我一个基础很差的人来说,无疑是个挑战啊. 经过一段时间的摸索,终于有了点眉目,在这里,要特别感谢http://blog.csdn.net/u012367513/article/details/38866465 二当家的 博文对我的帮助.我的代码也是在他的基础上整理而来,只是增加了自己的一些见解. 再次感谢他的帮助. 我的基础很是薄弱,最然 二当家的 博文中已经讲解的很是清楚,但是我还是希望自己能过上一遍. 本文适宜读者: Spri

Spring3 Security 中配置会话管理

账户登录时,要求一个账户同时只能一人登录,配置中的步骤有三个: 1.在web.xml中配置HttpSessionEventPublisher <listener> <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class> </listener> 2.在security.xml中配置session management

Spring Security之用户名+密码登录

自定义用户认证逻辑 处理用户信息获取逻辑 实现UserDetailsService接口 @Service public class MyUserDetailsService implements UserDetailsService { private Logger logger = LoggerFactory.getLogger(getClass()); @Override public UserDetails loadUserByUsername(String username) throw

spring boot中配置日志log和热部署

Java的日志有很多 个人强烈不推荐log4j ,推荐log4j2和logback 在高并发,多线程的环境下log4j1 的性能和log4j2相比可以用junk来形容  对就是junk.log4j2的异步模式表现了绝对的性能优势,优势主要得益于Disruptor框架的使用,logback比log4j1强但比log4j2弱.此外常规情况下logback要比log4j2的性能优越,毕竟logback是基于log4j的基础上优化的.LogBack和Log4J2是Log4j的改良版本,比Log4j拥有更