ByteSource.Util.bytes(user.getSalt())
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { String username = (String) token.getPrincipal(); UserService userService = (UserService)ContextLoader.getCurrentWebApplicationContext().getBean("userService"); User user = userService.queryUser(username); System.out.println("user:"+user); if(user==null){ System.out.println("用户不存在"); throw new UnknownAccountException("username:"+username+"不存在"); } //以上逻辑不变 //在最后返回用户认证info时,添加一个属性:ByteSource.Util.bytes(user.getSalt()) = 盐 //用于密码比对 return new SimpleAuthenticationInfo(user.getUsername(), user.getPassword(), ByteSource.Util.bytes(user.getSalt()), getName()); }至此,可以进行注册,注册中已经会加密密码。
然后登陆认证身份,认证时realm会调用比对器比对密文。