shiro身份认证失败:org.apache.shiro.authc.IncorrectCredentialsException

最近整个shiro项目的时候,发现一个小bug,在登录的时候,当用户名对,密码错的时候,本应提示用户名或密码错误的,但提示信息却是身份认证失败的异常信息,项目后台窗口报错

org.apache.shiro.authc.IncorrectCredentialsException: Submitted credentials for token [org.apache.shiro.authc.UsernamePasswordToken - zhangsan, rememberMe=true] did not match the expected credentials.

通过debug查看到源代码之后,发现org.apache.shiro.realm.AuthenticatingRealm整个流程:
在SimpleCredentialsMatcher这个类的doCredentialsMatch方法中,分别将待认证的密码以及数据库中的正确密码分别从token和info中取出,再判断二者是否一样,如果不一样就返回false,最后在AuthenticatingRealm这个类的assertCredentialsMatch方法中抛出IncorrectCredentialsException异常。所以不是身份认证的原因,归根到底是密码错的原因,经过多次验证,我很确定经过MD5加盐加密的密码没有错啊,那是能使格式错了,,,,,
在这里插入图片描述
又经过多次尝试,发现token和info不一样,一个是32位的string形式的,一个是char的形式,然后我将密码先设置为char再转为string之后,终于成功了。
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值