@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken)
throws AuthenticationException {
UsernamePasswordToken token = (UsernamePasswordToken) authcToken;
User user = loginService.findUserByUsername(token.getUsername());
if (user != null) {
// 不加密认证
// return new SimpleAuthenticationInfo(new
// ShiroUser(user.getId(),user.getUsername()),user.getPassword(),getName());
// 加密认证
byte[] salt = Encodes.decodeHex(user.getSalt());
return new SimpleAuthenticationInfo(new ShiroUser(user.getId(), user.getUsername()), user.getPassword(),
ByteSource.Util.bytes(salt), getName());
} else {
return null;
}
}
//指定shiro密码加密方式,shiro用password和salt加密后得到的字符串和数据库中的字符串对比
@PostConstruct
public void initCredentialsMatcher() {
HashedCredentialsMatcher matcher = new HashedCredentialsMatcher("SHA-1");
setCredentialsMatcher(matcher);
}自定义realm shiro加密配置
最新推荐文章于 2022-08-24 02:47:00 发布
本文介绍了一个使用Java Shiro框架实现的用户认证过程。通过重写doGetAuthenticationInfo方法来处理用户登录验证,并采用SHA-1算法进行密码加密比对。此外,还展示了如何初始化凭证匹配器以确保密码的安全验证。

1876

被折叠的 条评论
为什么被折叠?



