gpt4 book ai didi

java - Spring 安全 java.lang.IllegalArgumentException : Non-hex character in input

转载 作者:可可西里 更新时间:2023-11-01 13:46:30 27 4
gpt4 key购买 nike

我在 Windows7 环境中的 Tomcat 服务器中部署了一个现有的 Maven 项目。我正在使用 tomcat7 , spring-security-core 3.1.0 。

但是,每次我登录我的 webapp 时,我都会收到一个错误

java.lang.IllegalArgumentException: Non-hex character in input

该代码在 Linux 环境中运行良好。所以我在想这是因为我在本地环境中使用的是windows7。当我查看互联网时,我发现这是 linux 和 windows 之间的编码问题。

我试过设置

JAVA_TOOL_OPTIONS -Dfile.encoding=UTF8

但还没有成功。请帮帮我。提前致谢!

最佳答案

很可能,当您登录时,事件发生的顺序是这样的:

  1. Spring 通过用户名从数据库中选择一个实体。
  2. Spring 必须检查输入的密码是否与存储的编码密码匹配。

为了检查匹配,Spring 使用 PasswordEncoder ,您很可能已对其进行配置。

您的密码编码器期望存储的编码密码是一个十六进制字符序列(之前由此 PasswordEncoder 编码)。因此,它尝试将 CharSequence 解码为 byte[],但失败了 (source)。

解决方案是让用户使用之前编码的密码,例如通过 BCryptPasswordEncoder。

关于java - Spring 安全 java.lang.IllegalArgumentException : Non-hex character in input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34354710/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com