Ist nach der Konfiguration von Spring Security 3.2 _csrf.token
nicht an eine Anforderung oder ein Sitzungsobjekt gebunden.
Dies ist die Federsicherheitskonfiguration:
<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>
Die Datei 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>
Und es rendert das nächste HTML:
<input type="hidden" name="" value="" />
Das Ergebnis ist der HTTP-Status 403:
Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.
UPDATE Nach einigem Debuggen wird das Anforderungsobjekt in feiner Form von DelegatingFilterProxy ausgegeben, aber in der Zeile 469 von CoyoteAdapter wird request.recycle () ausgeführt. das löscht alle Attribute ...
Ich teste in Tomcat 6.0.36, 7.0.50 mit JDK 1.7.
Ich habe dieses Verhalten nicht verstanden, und es wäre möglich, wenn mich jemand in Richtung eines Anwendungsbeispielkrieges mit Spring Security 3.2 weist, der mit CSRF funktioniert.
web.xml
entscheidend ist. MultipartFilter
muss vorher deklariert werden springSecurityFilterChain
. Hoffentlich hilft das. Vielen Dank.
spring-security.xml
) mit Spring 4.0.0 RELEASE (GA), Spring Security 3.2.0 RELEASE (GA) (obwohl es in Struts 2.3.16 integriert ist. Ich habe es nicht angegeben versuchen Sie es mit Spring MVC alleine). Es schlägt jedoch fehl, wenn die Anforderung mehrteilig ist, um Dateien mit dem Status 403 hochzuladen. Ich habe Probleme, eine Lösung dafür zu finden.