shiro登录加盐出错UsernamePasswordToken - admin, rememberMe=false] did not match the expected credentials

13 篇文章 0 订阅
9 篇文章 0 订阅

org.apache.shiro.authc.IncorrectCredentialsException: Submitted credentials for token [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false] did not match the expected credentials.错误

问题原因:

集成shiro后登陆时候账号密码输入正确出现这种错误。
原因在于认证操作的时候建立的 SimpleAuthenticationInfo 认证结果信息和
shiroConfig的加密配置得到的结果不一致导致

如下 不一致抛出的异常则为上述错误信息
在这里插入图片描述

我的产生原因:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

上面的hash次数需要保持一致,不一致得到hash之后的密码就不一样,就导致上述的错误。

补充散列算法MD5加密

 /**
     * 散列算法一般用于生成一段文本的摘要信息,散列算法不可逆,也就是将内容生成摘要,但是反过来通过摘要生成内容是不可以的。
     * 散列算法常用于对密码进行散列,常用的散列算法有MD5、SHA。
     * 一般散列算法需要提供一个salt(盐)与原始内容生成摘要,这样做的目的是为了安全性。
     * @param args
     */
    public static void main(String[] args) {
        Md5Hash  md5Hash = new Md5Hash("123456");
        System.out.println("md5加密,不加盐:"+md5Hash.toString());

        //md5加密,加盐,一次hash
        String password_md5_sale_1 = new Md5Hash("123456", "abc", 1).toString();
        System.out.println("md5加密,加盐,一次hash:"+password_md5_sale_1);

        //md5加密,加盐,两次hash
        String password_md5_sale_2 = new Md5Hash("123456", "abc", 2).toString();
        System.out.println("md5加密,加盐,两次hash:"+password_md5_sale_2);//相当于md5(md5('123456'))

        //使用simpleHash
        String simpleHash = new SimpleHash("MD5", "123456", "abc", 1).toString();
        System.out.println("simpleHash方式:"+simpleHash);
    }

参考文章:

https://www.cnblogs.com/telwanggs/p/7118116.html

https://blog.csdn.net/aaarz/article/details/101051282

https://blog.csdn.net/weixin_43881008/article/details/89514443

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 该令牌提交时进行身份验证失败 [org.apache.shiro.authc.usernamepasswordtoken - admin, rememberme=false],可能存在意外错误?(典型或预期的登录异常应该继承自 AuthenticationException)。 ### 回答2: 这个错误信息提示登录口令认证失败。在Shiro框架中,登录认证是一个非常关键的步骤,它会验证用户提供的用户名和口令是否正确,并将认证结果存储在Shiro的Subject上下文中,以便实现后续的授权和访问控制等操作。 在这个错误信息中,我们可以看到认证失败的具体原因是“token submission [org.apache.shiro.authc.usernamepasswordtoken - admin, rememberme=false]”,即用户登录时提交的身份认证口令为“admin”,记住我选项为“false”。这种错误通常是由于用户提供的用户名和口令有误导致的,可以尝试重新输入正确的用户名和口令来解决这个问题。 另外,错误信息中还提到了“possible unexpected error”,即可能存在意外错误。这可能是由于一些系统配置或异常情况导致的,需要进一步排查。通常情况下,在Shiro框架中,登录的异常都应该继承自AuthenticationException类,如果碰到其他类型的异常,则需要进一步分析原因并进行修复。 总之,认证失败是系统安全的重要保障之一,Shiro框架为我们提供了方便易用的认证机制和组件,我们需要对其进行有效配置和使用,以确保系统安全和用户体验的高度质量。 ### 回答3: 授权失败是常见的错误,通常是因为用户名和密码的组合不正确。在本例中,授权失败的token是由“admin”用户名和“rememberme=false”的密码组成的,这意味着令牌中没有包含“rememberme”值。这种情况下,我们需要检查用户输入的用户名和密码是否正确,并确保我们正在使用正确的数据源来验证用户的凭据。此外,我们还需要确保我们的应用程序已正确地配置了Shiro验证和授权机制。对于未知错误,我们需要检查日志文件以查找可能的异常,并在必要时调试代码来识别和解决问题。总之,要解决授权失败,我们需要仔细检查各种可能的原因,并确保我们遵循最佳实践来保护用户凭据和应用程序的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值