shiro认证
自定义的Realm在进行shiro认证时,只判断了密码有没有而没有判断对不对,自定义Realm就返回SimpleAuthenticationInfo对象,请问是在 subject.isAuthenticated()方法中进行验证login的密码和返回密码是否一致嘛?
加盐加密时login传递的是明文,返回的是加盐加密后的,请问在验证时时自动将login的密码加盐加密码
自定义的Realm在进行shiro认证时,只判断了密码有没有而没有判断对不对,自定义Realm就返回SimpleAuthenticationInfo对象,请问是在 subject.isAuthenticated()方法中进行验证login的密码和返回密码是否一致嘛?
加盐加密时login传递的是明文,返回的是加盐加密后的,请问在验证时时自动将login的密码加盐加密码
2018-12-03
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中或者数据库缓存中 的值一样。
举报