2013-08-11 8 views
5

के साथ वसंत सुरक्षा त्रुटि हैंडलिंग मैं वसंत सुरक्षा 3.1 और आरईएसटी सेवाओं के लिए वसंत 3.2 का उपयोग कर रहा हूं। मैं प्रत्येक प्रतिक्रिया जेएसओएन बनाने के लिए संघर्ष कर रहा हूं उदा। यदि उपयोगकर्ता कुछ संसाधनों तक पहुंचने का प्रयास करता है लेकिन अभी तक प्रमाणित नहीं है। यदि उपयोगकर्ता गलत अनुरोध करता है तो मैं त्रुटि संदेश के साथ JSON वापस करना चाहता हूं।जेएसओएन प्रतिक्रिया

बस उल्लेख करने के लिए कि कुछ वैश्विक जगह होने के लिए और अधिक स्वीकार्य होगा जहां मुझे सभी त्रुटियों/अपवादों को पकड़ना चाहिए।

+0

जोड़ने मैं इस समय इस लगाने की कोशिश कर रहा हूँ वसंत सुरक्षा भाग के साथ खुद को बाहर निकालो। अभी तक कोई समाधान ढूंढें? आदर्श रूप में हम क्लाइंट को संभालने के लिए जेसन में परिभाषित एक त्रुटि ऑब्जेक्ट रखना चाहते हैं। – Michael

उत्तर

3

आप अन्य सभी नियंत्रकों द्वारा विस्तारित नियंत्रक वर्ग क्यों नहीं लिखते हैं (या यदि आप 3.2 का उपयोग कर रहे हैं तो @ControllerAdvice का उपयोग करें) और उस कक्षा में एक अपवादक एनोटेटेड विधि शामिल करें? इस

@ExceptionHandler(Throwable.class) 
public @ResponseBody GenericResponse handleException(Throwable throwable){ 
//handle exception 

} 

या इस ब्लॉग post

अद्यतन

इस देर से उत्तर के लिए क्षमा करें

पढ़ा की तरह कुछ। मेरा सुझाव यहाँ है। इसे 403 प्रतिक्रिया के साथ बस असफल बनाएं। इसके लिए बस अपनी वसंत सुरक्षा कॉन्फ़िगरेशन में निम्न स्निपेट जोड़ें। इस सेम

<http auto-config="true" use-expressions="true" entry-point-ref="entryPoint"> 

और ग्राहक के पक्ष में करने के लिए

<beans:bean id="entryPoint" 
    class="org.springframework.security.web.authentication.Http403ForbiddenEntryPoint" /> 

और बिंदु entrypoint-रेफरी, आपके AJAX कोड में, एक त्रुटि ब्लॉक

  error : function(jqXHR, textStatus, errorThrown){ 
       if (jqXHR.status == 403){ 
        alert('you need to login to do this operation'); 
        window.location.href = contextPath+"/signin"; 
// or whatever you want to 
       } 
      } 
+3

मेरी समस्या का समाधान नहीं करता है, गलत अनुरोधों को नहीं पकड़ता है। शायद वसंत सुरक्षा की वजह से है। इस उत्तर को सही के रूप में स्वीकार नहीं कर सकता। – Zemzela

+1

जैसा कि ज़ेमेज़ला ने उल्लेख किया है, वसंत सुरक्षा के आसपास किसी भी मुद्दे का ख्याल नहीं रखता क्योंकि यह नियंत्रक कहलाता है इससे पहले अपवाद या त्रुटि फेंकता है। – Michael

+0

@ माइकल: मेरा बुरा, मुझे इस बात से चूक गया कि प्रेषक सर्वलेट लागू होने से पहले प्रमाणीकरण किया जाता है। मैंने अपना जवाब अपडेट कर लिया है। कृपया अपनी अंतर्दृष्टि दें। – shazinltc

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