使用弹簧安全表单登录时,我需要帮助解决问题。表单登录将带有转义特殊字符的用户名发送到服务器,但弹簧不会取消转义此参数并且在数据库中找不到用户。
我使用自定义 UserDetailsService 但带有用户名的参数包含 scape 特殊字符。有可能对特殊字符进行转义吗?
我正在尝试对特殊字符进行转义,但更改失败。
数据: - Spring 3.1.1.RELEASE - Spring Security 3.1.1.RELEASE - Tomcat 7.X
编辑:
我认为通过将编码过滤器放入 web.xml 文件可以解决问题。
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>