मैं चाहता हूं कि मेरे नियंत्रक को सही HTTP प्रतिक्रिया कोड वापस कर दें जब उपयोगकर्ता को किसी विशेष पृष्ठ को देखने की अनुमति न हो।मैं वसंत एमवीसी में 403 निषिद्ध कैसे लौटा सकता हूं?
उत्तर
ढिलाई
आप सादे JSP विचारों उपयोग कर रहे हैं (के रूप में सबसे आम है), तो बस अपने दृश्य फ़ाइल में
<% response.setStatus(403); %>
कहीं जोड़ें। शीर्ष पर एक अच्छी जगह है।
विस्तार
MVC में, मैं हमेशा इस दृश्य में सेट है, और वसंत-MVC के साथ ज्यादातर मामलों में, SimpleMappingExceptionResolver
का उपयोग सही दृश्य पेश करने के लिए एक फेंक दिया क्रम अपवाद के जवाब में।
उदाहरण के लिए: अपने नियंत्रक या सेवा परत में PermissionDeniedException
बनाएं और फेंक दें और अपवाद रिज़ॉल्वर को एक दृश्य फ़ाइल permissionDenied.jsp
पर इंगित करें। यह दृश्य फ़ाइल 403 स्थिति सेट करती है और उपयोगकर्ता को एक उचित संदेश दिखाती है।
अपने वसंत सेम एक्सएमएल फ़ाइल में:
<bean id="exceptionResolver"
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="PermissionDeniedException">
rescues/permissionDenied
</prop>
... set other exception/view mappings as <prop>s here ...
</props>
</property>
<property name="defaultErrorView" value="rescues/general" />
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
आप एक उपयोगकर्ता लॉगिन तंत्र लागू करने के लिए, Spring Security (पूर्व Acegi सुरक्षा) पर एक नज़र डालें की जरूरत है।
ExceptionResolver
का उपयोग करने का एक शानदार तरीका है, लेकिन यदि आप इसे केवल स्वतंत्र-स्वतंत्र होना चाहते हैं, तो आप निश्चित रूप से अपने नियंत्रक में response.sendError(HttpServletResponse.SC_FORBIDDEN, "AdditionalInformationIfAvailable");
पर कॉल कर सकते हैं।
@ResponseStatus के साथ एनोटेटेड अपवाद बनाएं उदा। इस तरह:
@ResponseStatus(HttpStatus.FORBIDDEN)
public class ForbiddenException extends RuntimeException {
}
अब बस अपने हैंडलर विधि में है कि अपवाद फेंक और प्रतिसाद स्थिति 403
होगा आप, साथ ही फेंक कर सकते हैं
org.springframework.security.access.AccessDeniedException("403 returned");
इस जवाब में एक 403 देता है हैडर।
यह पूरी तरह से काम करता है और होना चाहिए स्वीकृत उत्तर क्योंकि यह सबसे लचीला है। – Heady
@ हेडी: वास्तव में सबसे अच्छा जवाब नहीं है क्योंकि यह वसंत सुरक्षा के साथ एक मजबूत निर्भरता बनाता है। जो का जवाब, अपना खुद का अपवाद बनाने के लिए, सबसे अच्छा आईएमओ है। मैंने अभी भी उसको उखाड़ फेंक दिया क्योंकि यह एक सभ्य विकल्प है। –
यह मेरे लिए 500 लौटाता है। – heez
- 1. ओपनयूआरआई :: HTTPError: 403 निषिद्ध
- 2. वेबलॉगिक त्रुटि 403 - निषिद्ध
- 3. file_get_contents रिटर्न 403 निषिद्ध
- 4. 403 निषिद्ध त्रुटि
- 5. अपाचे वर्चुअलहोस्ट 403 निषिद्ध
- 6. एसवीएन त्रुटि 403 निषिद्ध
- 7. SVN: MKACTIVITY 403 निषिद्ध
- 8. पोस्ट विधि हमेशा 403 निषिद्ध
- 9. 403 वेब रूट में सिम्लिंक पर निषिद्ध
- 10. मैं वसंत एमवीसी आवेदन कैसे क्लस्टर कर सकता हूं?
- 11. त्रुटि प्राप्त करना "रिमोट सर्वर ने एक त्रुटि लौटा दी: (403) निषिद्ध" जब HttpWebRequest.GetResponse()
- 12. वेब क्लाइंट - रिमोट सर्वर ने एक त्रुटि लौटा दी: (403) निषिद्ध
- 13. मैं Django में 401 अनधिकृत कैसे लौटा सकता हूं?
- 14. 403 एएसपीएनटी एमवीसी
- 15. 403 - पर बुनियादी MVC 3 तैनाती पर निषिद्ध iis7.5
- 16. जब मैं whatismyip.com से कनेक्ट करता हूं तो मुझे "403 निषिद्ध" क्यों मिलता है?
- 17. मैं वसंत/हाइबरनेट में jdbc.properties कैसे पास कर सकता हूं?
- 18. मैं कैसे वसंत एमवीसी में लोकेल आधारित संदेशों को परिभाषित और प्राप्त कर सकता हूं?
- 19. 403 - निषिद्ध: प्रवेश अस्वीकार कर दिया गया है। आपके पास
- 20. 403 निषिद्ध संदेश v3 Google कैलेंडर API बुला OAuth 2.0
- 21. अपाचे सिम्लिंक का पालन नहीं करेगा (403 निषिद्ध)
- 22. ELMAH - एमवीसी 3 - 403 - निषिद्ध: एक्सेस अस्वीकार कर दिया गया है
- 23. 403 सबवर्सन
- 24. 403 जावा के साथ निषिद्ध लेकिन वेब ब्राउजर नहीं?
- 25. save_and_process पोस्ट प्रोसेसिंग 403 निषिद्ध Carrierwave_direct S3 धुंध
- 26. "रिमोट सर्वर ने एक त्रुटि लौटा दी: (403) अवरुद्ध" https
- 27. निषिद्ध (403) सीएसआरएफ सत्यापन विफल रहा। अनुरोध रोका गया
- 28. वसंत एमवीसी
- 29. एमआईएमई प्रकार को जानने के बिना मैं एएसपी.नेट में फाइलरसेट कैसे लौटा सकता हूं?
- 30. वसंत एमवीसी
प्रतिक्रिया.सेटस्टैटस क्यों आवश्यक है? प्रतिक्रिया के बाद (टॉमकैट में), प्रतिक्रिया के http प्रतिक्रिया कोड का कुछ चरण विकास हुआ प्रतीत होता है - यह पहला 200 (डिफ़ॉल्ट) है, फिर वसंत डिस्पैचर सर्वलेट प्रक्रिया करते समय 404 (तर्क के लिए) की ओर जाता है हैंडलर अपवाद, फिर, दृश्य प्रस्तुत किया जाता है और कोड 500 पर सेट किया जाता है (जो अजीब है), और उसके बाद, सेटस्टैटस वास्तव में प्रतिक्रिया के कोड को 404 पर वापस कर समस्या को ठीक करता है। – Eugen