shiro认证

来源:3-6 Shiro加密

宝慕林1081677

2018-12-03 20:00

自定义的Realm在进行shiro认证时,只判断了密码有没有而没有判断对不对,自定义Realm就返回SimpleAuthenticationInfo对象,请问是在 subject.isAuthenticated()方法中进行验证login的密码和返回密码是否一致嘛?

加盐加密时login传递的是明文,返回的是加盐加密后的,请问在验证时时自动将login的密码加盐加密码


写回答 关注

1回答

  • Youare_my_sunshine
    2018-12-21 11:09:44

    String password = getPasswordByUsername(username);通过这个去获取的密码,如果密码没有找到是直接 return null,不为空才创建SimpleAuthenticationInfo返回对象的,这个是在创建对象之前的,这里用的是map一个定值,也可以是数据库或者缓存中去查找密码。

    login传递的是明文,但是通过

    //加密

    HashedCredentialsMatcher matcher = new HashedCredentialsMatcher();

    matcher.setHashAlgorithmName("md5");//加密算法

    matcher.setHashIterations(1);//加密次数

    customrealm.setCredentialsMatcher(matcher);

    在提交认证请求前直接进行了加密,他直接和map中的数据进行的匹配,这个是你手动加盐加密的,login认证只是判断你传过来的参数,在你手动加盐加密后是否和map中或者数据库缓存中 的值一样。

Shiro安全框架入门

从零入门Shiro安全框架

48040 学习 · 332 问题

查看课程

相似问题