Spring Security 3.2를 구성한 후 _csrf.token
요청 또는 세션 개체에 바인딩되지 않습니다.
이것은 스프링 보안 구성입니다.
<http pattern="/login.jsp" security="none"/>
<http>
<intercept-url pattern="/**" access="ROLE_USER"/>
<form-login login-page="/login.jsp"
authentication-failure-url="/login.jsp?error=1"
default-target-url="/index.jsp"/>
<logout/>
<csrf />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="test" password="test" authorities="ROLE_USER/>
</user-service>
</authentication-provider>
</authentication-manager>
login.jsp 파일
<form name="f" action="${contextPath}/j_spring_security_check" method="post" >
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
<button id="ingresarButton"
name="submit"
type="submit"
class="right"
style="margin-right: 10px;">Ingresar</button>
<span>
<label for="usuario">Usuario :</label>
<input type="text" name="j_username" id="u" class="" value=''/>
</span>
<span>
<label for="clave">Contraseña :</label>
<input type="password"
name="j_password"
id="p"
class=""
onfocus="vc_psfocus = 1;"
value="">
</span>
</form>
그리고 다음 html을 렌더링합니다.
<input type="hidden" name="" value="" />
결과는 403 HTTP 상태입니다.
Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.
UPDATE 약간의 디버그 후 요청 객체는 DelegatingFilterProxy 형식으로 잘 나오지만 CoyoteAdapter의 469 행에서 request.recycle (); 모든 속성을 지우는 ...
Tomcat 6.0.36, 7.0.50에서 JDK 1.7로 테스트합니다.
이 동작을 이해하지 못했습니다. 누군가가 CSRF와 함께 작동하는 Spring Security 3.2와의 일부 애플리케이션 샘플 전쟁의 방향을 제시한다면 가능할 것입니다.
spring-security.xml
봄 4.0.0 RELEASE (GA), 봄 보안 3.2.0 RELEASE (GA) (이 스트럿츠와 통합되어 있지만 2.3.16. 나는 그것을주지 않았다 포함) Spring MVC만으로 시도하십시오). 그러나 요청이 403 상태의 파일을 업로드하기위한 다중 부분 이면 실패 합니다. 이에 대한 해결책을 찾기 위해 고군분투하고 있습니다.