Jep*_*jep 5 java windows spring-security character-encoding tomcat7
我在Windows7环境中的Tomcat服务器中部署了现有的Maven项目.我正在使用tomcat7,spring-security-core 3.1.0.
但是,每次我登录我的webapp时,都会收到错误消息
java.lang.IllegalArgumentException: Non-hex character in input
Run Code Online (Sandbox Code Playgroud)
该代码在Linux环境中运行良好.所以我在想它是因为我在我的本地环境中使用windows7.当我查看互联网时,我发现这是Linux和Windows之间的编码问题.
我试过设置
JAVA_TOOL_OPTIONS -Dfile.encoding = UTF8
但没有成功.请帮帮我.提前致谢!
小智 2
最有可能的是,当您登录时,事件发生的顺序是这样的:
为了检查匹配,Spring 使用您很可能已配置的PasswordEncoder 。
您的密码编码器期望存储的编码密码是十六进制字符序列(之前由该PasswordEncoder 编码)。因此,它尝试将 CharSequence 解码为 byte[],但失败(source)。
解决方案是使用先前编码的密码(例如通过 BCryptPasswordEncoder)保留用户。
| 归档时间: |
|
| 查看次数: |
4446 次 |
| 最近记录: |