java - Spring Security filters out every case -
मेरे पास दो पृष्ठ मूल वेबसाइट पर निम्न सुरक्षा कॉन्फ़िगरेशन है।
& lt; http का उपयोग-भाव = "true" & gt; & Lt; intercept-url pattern = "/ login *" access = "permitAll" / & gt; & Lt; intercept-url पैटर्न = "/ संसाधन / **" access = "permitAll" / & gt; & Lt; intercept-url पैटर्न = "/ **" access = "हैरोल ('ROLE_ADMIN')" / & gt; & Lt; form-login login-page = '/ login.jsp' default-target-url = "/ index.jsp" उपयोक्ता-पैरामीटर = "नाम" पासवर्ड-पैरामीटर = "पासवर्ड" / & gt; & Lt; / http & gt; & LT; प्रमाणीकरण-प्रबंधक & gt; & LT; प्रमाणीकरण प्रदाता & gt; & LT; उपयोगकर्ता के सेवा & gt; & Lt; उपयोगकर्ता नाम = "व्यवस्थापक" पासवर्ड = "व्यवस्थापक" प्राधिकरण = "ROLE_USER, ROLE_ADMIN" / & gt; & Lt; उपयोगकर्ता नाम = "उपयोगकर्ता" पासवर्ड = "उपयोगकर्ता" अधिकारियों = "ROLE_USER" / & gt; & Lt; / उपयोगकर्ता के सेवा & gt; & Lt; / प्रमाणीकरण प्रदाता & gt; & Lt; / प्रमाणीकरण-प्रबंधक & gt;
मैं कस्टम नियंत्रकों का उपयोग नहीं कर रहा हूं, केवल डिफ़ॉल्ट वसंत के दृश्य रिज़ॉल्यूशन का उपयोग कर रहा हूं।
& lt; mvc: annotation-driven / & gt; & Lt; mvc: संसाधनों का स्थान = "/ संसाधन /" मानचित्रण = "/ संसाधन / **" / & gt; & Lt; बीन वर्ग = "org.springframework.web.servlet.view.InternalResourceViewResolver" & gt; & Lt; संपत्ति नाम = "उपसर्ग" मान = "/ वेब-एनएफ़ / देखें /" / & gt; & Lt; संपत्ति नाम = "प्रत्यय" मान = "। Jsp" / & gt; & Lt; / सेम & gt;
जब मैं डिफ़ॉल्ट पृष्ठ index.jsp
का उपयोग करने की कोशिश करता हूं तो मुझे यह सुनिश्चित करता है कि मुझे login.jsp
पेज पर रीडायरेक्ट करता है, लेकिन जब मैं फॉर्म के डेटा को डालता हूं तो मुझे index.jsp
पेज पर मुझे login.jsp
पर पुन: निर्देशित नहीं भेजता है। प्रपत्र फ़ील्ड को नाम
के साथ सुरक्षा विन्यास में शोइन के रूप में परिभाषित किया गया है और फ़ॉर्म क्रिया
है index.jsp
।
& lt; form method = "post" action = "& lt; c: url value = '/ मेरा login.jsp
Index.jsp '/ & gt; "& gt; & Lt; label = "inputEmail3" & gt; उपयोगकर्ता & lt; / label & gt; & Lt; इनपुट नाम = "नाम" प्रकार = "टेक्स्ट" id = "inputEmail3" प्लेसहोल्डर = "उपयोगकर्ता नाम" आवश्यक & gt; & Lt; label = "inputPassword3" & gt; पासवर्ड & lt; / label & gt; & Lt; इनपुट नाम = "पासवर्ड" प्रकार = "पासवर्ड" id = "inputPassword3" प्लेसहोल्डर = "पासवर्ड" आवश्यक & gt; & Lt; बटन प्रकार = "सबमिट करें" वर्ग = "बीटीएन बीटीएन-सफलता बीटीएन-एसएम" & gt; साइन इन करें & lt; / बटन & gt; & Lt; बटन प्रकार = "रीसेट" वर्ग = "बीटीएन बीटीएन-डीफ़ॉल्ट बीटीएन-एसएम" & gt; रीसेट करें & lt; / बटन & gt; & Lt; / प्रपत्र & gt;
मुझे क्या याद आ रहा है?
फॉर्म लॉगिन के लिए डिफ़ॉल्ट रूप से, जब उसे किसी उपयोगकर्ता को प्रमाणित करने की आवश्यकता होती है, तो DefaultLoginPageGeneratingFilter
एक HTML फार्म वाले पृष्ठ को तैयार करता है, लेकिन आप उसे प्रदान कर सकते हैं।
फिर यूजरनाम पासवर्ड एटिफिकेशनफ़िल्टर यूआरएल
j_spring_security_check
पर डिफ़ॉल्ट रूप से फ़ॉर्म जमा करने के लिए छेड़छाड़ करता है, और फॉर्म को एक पोस्ट या स्प्रिंग सुरक्षा के साथ जमा कर दिया जाना चाहिए (डिफ़ॉल्ट रूप से) अपवाद फेंकता है।
लॉगिन फ़ॉर्म सबमिशन के लिए आपको एक समर्पित URL का उपयोग करना चाहिए अगर आपको j_spring_security_check
पसंद नहीं है, तो आप इसे लॉगिन-प्रसंस्करण-यूआरएल
फ़ॉर्म-लॉगिन एट्रिब्यूट से बदल सकते हैं, लेकिन इसे नहीं होना चाहिए सफलता यूआरएल के रूप में।
Comments
Post a Comment