zoukankan      html  css  js  c++  java
  • 已解决[Authentication failed for token submission,Illegal hexadecimal charcter s at index 1]

    在初次学习使用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

  • 相关阅读:
    ASP.NET MVC5中的Model验证
    MVC方式显示数据(数据库)
    MVC方式显示数据(手动添加数据)
    EF数据Linq方式查询
    c# MVC方式文件上传
    调用BAPI创建病患主数据时的问题汇总[BAPI_PATIENT_CREATE]
    [代码]如何上载图片到SAP数据库并显示
    [代码]读取物料BOM行项目长文本[READ_TEXT]
    [问题解决]更新订单BOM中的Qty Var-Sz Item字段失败
    [代码]如何在ALV头中显示Logo图片-[REUSE_ALV_GRID_DISPLAY]
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/12660249.html
Copyright © 2011-2022 走看看