shiro输入正确密码也会登录失败
shiro整合springBoot后登录一直失败的原因
最后发现是存入数据库的密码密文在shiro比较之前会进行一次base64的转换
上代码
shiro配置
@Configuration
public class ShiroConfig {
/**
* 加密算法
* @return
*/
@Bean
public HashedCredentialsMatcher hashedCredentialsMatcher(){
//加密对象
HashedCredentialsMatcher matcher = new HashedCredentialsMatcher();
//加密方法
matcher.setHashAlgorithmName("md5");
//加密次数
matcher.setHashIterations(2);
//加密编码方式
matcher.setStoredCredentialsHexEncoded(false);
return matcher;
}
/**
* 自定义realm
* @return
*/
@Bean
public MyRealm myRealm(){
MyRealm myRealm = new MyRealm();
myRealm.setCredentialsMatcher(hashedCredentialsMatcher());
return myRealm;
}
/**
* 安全管理器
* @return
*/
@Bean
public SecurityManager securityManager(){
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(myRealm());
return securityManager;
}
/**
* shiro
* @return
*/
@Bean
public ShiroFilterFactoryBean shiroFilter(){
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
shiroFilterFactoryBean.setSecurityManager(securityManager());
Map<String,String> filterChainDefinitionMap = new HashMap<>(16)