春季安全:表单登录特殊字符



在使用春季安全表单登录时需要帮助。表单登录向服务器发送带有转义特殊字符的用户名,但spring没有转义此参数,并且没有在数据库中找到用户。

我使用自定义UserDetailsService,但参数与用户名包含scape特殊字符。有可能没有转义的特殊字符吗?

我正在尝试不转义特殊字符,但更改失败。

数据:—Spring 3.1.1.RELEASE—Spring Security 3.1.1.RELEASE—TomcatX

编辑:

我认为这个问题是通过在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>

你不需要做任何复杂的事情,只需要使用std spring设置

 <form name="f" id="f" action="<c:url value='/j_spring_security_check'/>" method="POST">
   <label for="j_username">E-mail :&nbsp;</label><input type='text' id='j_username' name='j_username'/><br/>
   <label for="j_password">Password :&nbsp;</label><input type='password' id='j_password' name='j_password'><br>

最新更新