java shiro认证问题

2024-12-20 02:45:56
推荐回答(3个)
回答1:

我也不清楚,没去看代码,但我知道如何解决。

是报这个错么

Caused by: java.lang.IllegalArgumentException: Odd number of characters

如果是的话 就把spring-shiro.xml里 加密的部分去掉



           
               
              
               
              
              
           
   

改成


回答2:

如果是的话 就把spring-shiro.xml里 加密的部分去掉 改成

for token submission

Authentication failed for token submission [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false].  

Possible unexpected error? (Typical or expected login exceptions should extend from AuthenticationException).

原因:

我今天也遇到了这个错误,并不是密码验证错误, 我用的mabatis 有个mapperxml配置文件写错(并非登录相关的mapper),

参数类型是parametertype 我搞成了parametermap 报错就是这个错误。分析下在登录时login方法会调用我们重写的doGetAuthenticationInfo方法,

这个方法我们会通过dao实现层写的登录验证相关方法(我的是Admin admin = this.accountService.findAdmin(username))来将登录信息存入

SimpleAuthenticationInfo,就是在这个地方,项目会加载我们所配置的相关信息,对我而言就是mabatis里的xml 因为xml里的配置有错,

所以Admin admin = this.accountService.findAdmin(username)这个方法尽管与出错的xml无关也会报错。 

所以说应该检查下自己与doGetAuthenticationInfo相关的配置文件是否有从,可以try{currentUser.login(token)} 

catch(AuthenticationException a){}异常捕获后再次debug调试,就能发现问题出在哪里了。

回答3:

我今天也遇到了这个问题,集成shiro的时候,在网上搜的代码,自己测试呢报如下异常Authentication failed for token submission [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false]. Pos........
java.lang.IllegalArgumentException: Odd number of characters.
我的问题原因是doGetAuthenticationInfo方法执行的时候会调用hashedCredentialsMatcher进行MD5处理,而我返回的数据中密码是明文的,测试数据,没有经过散列处理。

处理方式是讲密码同意经过hashedCredentialsMatcher中的处理方式进行返回。
不知道其他人有没有跟我遇到同样问题的,可以从这方面尝试下。