Spring Security之解决密码加密后登录问题(六)
在之前我们写过的Spring Security之使用数据库完成用户登录和注销(二)案例中增加一些操作
- 在
Spring-Security.xml
配置文件中配置加密方式
<!-- 切换成数据库中的用户名和密码 -->
<security:authentication-manager>
<security:authentication-provider user-service-ref="userService">
<!-- 配置加密的方式-->
<security:password-encoder ref="passwordEncoder"/>
</security:authentication-provider>
</security:authentication-manager>
- 在
UserServiceImpl
类的loadUserByUsername(String username)
的new User()
中的密码代码前删除掉前缀"{noop}"
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
UserInfo userInfo = null;
try {
userInfo = userDao.findByUsername(username);
} catch (Exception e) {
e.printStackTrace();
}
//处理自己的用户对象封装成UserDetails
User user = new User(userInfo.getUsername(), userInfo.getUsersPASSWORD(),
userInfo.getUsersSTATUS() == 0 ? false : true, true,
true, true, getAuthority(userInfo.getRoles()));
return user;
}