在初次学习使用shiro框架的时候碰到了这个问题,具体报错情况如下:

[org.apache.shiro.authc.AbstractAuthenticator] - Authentication failed for token submission [org.apache.shiro.authc.UsernamePasswordToken - asdf, rememberMe=false]. Possible unexpected error? (Typical or expected login exceptions should extend from AuthenticationException).
java.lang.IllegalArgumentException: Illegal hexadecimal charcter s at index 1

at org.apache.shiro.codec.Hex.toDigit(Hex.java:156)
at org.apache.shiro.codec.Hex.decode(Hex.java:137)
at org.apache.shiro.codec.Hex.decode(Hex.java:107)s

....

原因:

  有错误信息可知,这是一个认证失败错误,往后看,大概与封装用户信息的token有关,再往下看,java爆出的异常是非法16进制字符有问题==>shiro框架的加密/解密出了问题。

预判:

  要么是shiro对toke进行了加密,而从数据库读取的数据并未加密,故匹配信息失败;

  要么是shiro没有对token加密,而数据库读取的数据加了密,导致匹配失败;

  还有一种可能就是,两边的加密方式不同,匹配失败。

解决办法:使两边的数据加密一致。

我的办法:因为我的mysql数据没有加密,所以我调整shiro的配置文件,去掉了加密模块,然后再跑,就正常了。

<bean id="shiroDbRealm" class="com.rgl.realm.shiroDbRealm">
<!-- <property name="credentialsMatcher">
<bean class="org.apache.shiro.authc.credential.HashedCredentialsMatcher">
<property name="hashAlgorithmName" value="MD5"/>
</bean>
</property> -->
<property name="cacheManager" ref="cacheManager"/>
</bean>

被我屏蔽掉的那段就是md5加密的调用配置。
————————————————
版权声明:本文为CSDN博主「geniusle201」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/geniusle201/java/article/details/70493517

最新文章

  1. PHP如何判断一个gif图片是否为动画?
  2. CocoaPods报错:The dependency `Alamofire ` is not used in any concrete target
  3. DHCP服务器原理
  4. nginx+uwsgi+django+celery+supervisord环境部署
  5. 关于tomcat会在url末尾自动追加斜杠(/)
  6. artEditor增加表单提交功能
  7. Poj(2253),Dijkstra松弛条件的变形
  8. text-overflow:ellipsis实现超出隐藏时省略号显示
  9. 系统没有“internet信息服务(IIS)管理器”
  10. Cordic 算法之 反正切
  11. SoapUI中读取法文字符
  12. [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)
  13. 洛谷P1501 [国家集训队]Tree II(LCT,Splay)
  14. [JCIP笔记](五)JDK并发包
  15. bootice-diskinfo参数
  16. Python CGI编程
  17. POJ3683 Priest John&#39;s Busiest Day(2-SAT)
  18. 设计模式---接口隔离模式之中介者模式(Mediator)
  19. Java调用oracle存储过程通过游标返回临时表数据
  20. android:layout_margin真实含义 及 自己定义复合控件 layout()运行无效的问题解决

热门文章

  1. FileZilla更新服务器文件后浏览器没有刷新的一种常见情况
  2. 数学--数论--中国剩余定理 拓展 HDU 1788
  3. DNS 处理模块 dnspython
  4. Java面试题:抽象类和接口的区别
  5. LeetCode 98. 验证二叉搜索树 | Python
  6. mybatis的关系映射
  7. xpath加PHP对网站相关数据的截取
  8. failed parsing overlays.
  9. Viterbi-Algorithm(维特比)算法
  10. 小程序如何动态修改标题navigationBarTitleText