복붙노트

[SPRING] 스프링 보안 : 폼 로그인 특수 문자

SPRING

스프링 보안 : 폼 로그인 특수 문자

스프링 보안 양식 로그인을 사용할 때 문제가있는 도움이 필요합니다. 양식 로그인은 서버에 이스케이프 특수 문자로 사용자 이름을 보내지 만 봄은이 매개 변수를 이스케이프 처리하지 않고 데이터베이스에서 사용자를 찾을 수 없습니다.

사용자 정의 UserDetailsService를 사용하고 있지만 사용자 이름이있는 매개 변수에는 scape 특수 문자가 포함되어 있습니다. 가능한 특수 문자를 이스케이프 할 수 있습니까?

특수 문자를 이스케이프 처리하려고하지만 변경이 실패합니다.

데이터: - Spring 3.1.1.RELEASE - 스프링 보안 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>

해결법

  1. ==============================

    1.복잡한 일을해서는 안되며, 표준 봄을 사용하십시오.

    복잡한 일을해서는 안되며, 표준 봄을 사용하십시오.

     <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>
    
  2. from https://stackoverflow.com/questions/15880366/spring-security-form-login-special-characters by cc-by-sa and MIT license