错误如下:
1 | threw exception [Request processing failed; nested exception is org.apache.shiro.authc.IncorrectCredentialsException: Submitted credentials for token [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=true] did not match the expected credentials.] with root cause |
解决方案:
- 这是shiro返回的密码校验结果不一样,要么你把shiro校验的令牌规则重写,就是按什么方式去校验。
- 要么你自己把密码加密好传给shiro。
白话文讲:
当你登陆的时候,你会创建一个UsernamePasswordToken
对象,或者UsernamePasswordToken
的子类对象,并且赋予账号、密码、rememberMe,这里的密码你需要和数据库一直,比如你做了md5加密
,那么你先做md5加密
然后再创建UsernamePasswordToken
对象.
然后你在校验完毕后:1
return new SimpleAuthenticationInfo(token,memberSecurity.getLoginPswd(), getName());
- 这里的第二个参数为密码,shiro会把第二个参数和你开始传进来的参数按规则对比,如果错误(或者是同一个引用对象)就返回上面的错误。