स्प्रिंग सुरक्षा 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'.
अद्यतन कुछ डीबग के बाद, अनुरोध ऑब्जेक्ट ठीक प्रपत्र DelegatingFilterProxy हो जाता है, लेकिन CoyoteAdapter की लाइन 469 में यह request.recycle () निष्पादित करता है; जो सभी विशेषताओं को मिटा देता है ...
मैं टॉमकैट 6.0.36, 7.0.50 में JDK 1.7 के साथ परीक्षण करता हूं।
मैंने इस व्यवहार को नहीं समझा है, बजाय, यह संभव होगा यदि कोई मुझे स्प्रिंग सिक्योरिटी 3.2 के साथ कुछ एप्लिकेशन सैंपल युद्ध की दिशा में इंगित करता है जो सीएसआरएफ के साथ काम करता है।
spring-security.xml
स्प्रिंग 4.0.0 RELEASE (GA), स्प्रिंग सिक्योरिटी 3.2.0 RELEASE (GA) के साथ यही बात मेरे लिए काम करती है (हालांकि इसमें अंतर है ), हालांकि यह स्ट्रट्स 2.3.16 के साथ एकीकृत है। मैंने इसे नहीं दिया। स्प्रिंग MVC के साथ अकेले प्रयास करें)। हालाँकि यह विफल रहता है, जब अनुरोध 403 के साथ फाइल अपलोड करने के लिए मल्टीपार्ट है । मैं इसके लिए एक समाधान खोजने के लिए संघर्ष कर रहा हूं।