问题
在学习Shiro的时候,遇到Shiro抛出org.apache.shiro.authc.AuthenticationException异常,完整异常如下:
org.apache.shiro.authc.AuthenticationException: Authentication failed for token submission [org.apache.shiro.authc.UsernamePasswordToken - xue8, rememberMe=false]. Possible unexpected error? (Typical or expected login exceptions should extend from AuthenticationException).
出现这个异常的原因是因为身份验证出错了,但是我觉得我写的Realm应该没什么错误,最后折腾了一会,翻看了一下Shiro的一些源码,终于知道出现这个问题的原因了,于是想将过程记录下来。
解决
我在Realm的身份证验证方法doGetAuthenticationInfo添加断点进行调试
发现是从authenticationToken获取用户密码getCredentials()的时候出问题了,这就奇怪了,获取

在学习Shiro时遇到AuthenticationException,问题出在密码验证。经过源码分析,发现Shiro将密码从String转为char[]存储,导致认证失败。解决方案是将密码参数改为Char[]类型接收。

6024

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



