2010-10-17 22 views
11

जब कोई उपयोगकर्ता गलत क्रेडेंशियल के साथ लॉग इन करने का प्रयास करता है तो मैं SPRING_SECURITY_LAST_EXCEPTION.message ("खराब प्रमाण-पत्र") प्रदर्शित करने में सक्षम हूं।वसंत सुरक्षा: मैं SPRING_SECURITY_LAST_EXCEPTION.message को कैसे रीसेट कर सकता हूं?

मेरा प्रवेश jsp वर्तमान में निम्नलिखित कोड का उपयोग करता है:

<c:if test="${not empty SPRING_SECURITY_LAST_EXCEPTION.message}"> 
    <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}" /> 
</c:if> 

मेरे समस्या यह है कि "बैड साख" संदेश वहाँ अभी भी है जब उपयोगकर्ता प्रवेश पृष्ठ से चला और फिर वापस आता है।

जब उपयोगकर्ता लॉगिन पृष्ठ को रीफ्रेश करता है तो मैं SPRING_SECURITY_LAST_EXCEPTION.message को रीसेट कैसे कर सकता हूं?

उत्तर

15

सामान्य दृष्टिकोण केवल असफल लॉगिन के बाद त्रुटि संदेश प्रदर्शित करना है, जहां विफल पैरामीटर अनुरोध पैरामीटर द्वारा निर्धारित किया जाता है। यही है, आप

<form-login ... authentication-failure-url = "/login?error=1" /> 

के रूप में वसंत सुरक्षा कॉन्फ़िगर और त्रुटि संदेश दिखाई के रूप में

<c:if test="${not empty param['error']}"> 
    <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}" /> 
</c:if> 

हालांकि, बाद से SPRING_SECURITY_LAST_EXCEPTION एक सत्र विशेषता है, मुझे लगता है कि आप निम्नलिखित दृष्टिकोण का उपयोग कर इसे रीसेट कर सकते हैं:

<c:remove var = "SPRING_SECURITY_LAST_EXCEPTION" scope = "session" /> 
+0

बहुत बहुत धन्यवाद। दोनों सुझाव काम किया। दूसरे ने काम किया जब मैंने सी के अंदर डाल दिया: यदि सी: आउट के बाद। – outis

संबंधित मुद्दे