मैं अपने स्प्रिंग एमवीसी ऐप में इसे देखता हूं web.xml
:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
मैं यह पता लगाने की कोशिश कर रहा हूं कि ऐसा क्यों है और क्या इसकी वास्तव में जरूरत है।
मुझे यह स्पष्टीकरण स्प्रिंग डॉक्स में मिला लेकिन इससे मुझे इसका कोई मतलब नहीं है:
ऐसा लगता है कि यह घटक web.xml
स्प्रिंग में परिभाषित किए गए सर्वलेट्स और घटकों के बीच "गोंद" है applicationContext.xml
।
7.1.१ डेलीगेटिंगफिल्टरप्रॉक्सी
सर्वलेट फ़िल्टर का उपयोग करते समय, आपको स्पष्ट रूप से उन्हें अपने में घोषित करने की आवश्यकता होती है
web.xml
, या उन्हें सर्वलेट कंटेनर द्वारा अनदेखा किया जाएगा। स्प्रिंग सिक्योरिटी में, फ़िल्टर क्लास भी एप्लिकेशन के संदर्भ में परिभाषित स्प्रिंग बीन्स हैं और इस प्रकार स्प्रिंग की समृद्ध निर्भरता-इंजेक्शन सुविधाओं और जीवनचक्र इंटरफेस का लाभ उठाने में सक्षम हैं। वसंतDelegatingFilterProxy
प्रदान करता है के बीच लिंकweb.xml
और अनुप्रयोग संदर्भ।DelegatingFilterProxy का उपयोग करते समय, आपको
web.xml
फ़ाइल में कुछ इस तरह दिखाई देगा :<filter> <filter-name>myFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>myFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
ध्यान दें कि फ़िल्टर वास्तव में एक है
DelegatingFilterProxy
, न कि वह वर्ग जो वास्तव में फ़िल्टर के तर्क को लागू करेगा। क्याDelegatingFilterProxy
करता है फ़िल्टर के तरीकों को एक बीन के माध्यम से सौंप दिया जाता है जो स्प्रिंग एप्लिकेशन संदर्भ से प्राप्त होता है। यह बीन को स्प्रिंग वेब एप्लिकेशन के संदर्भ जीवनचक्र समर्थन और कॉन्फ़िगरेशन लचीलेपन से लाभान्वित करने में सक्षम बनाता है। बीन को लागू करना होगाjavax.servlet.Filter
और इसका वही नाम होना चाहिए जो फ़िल्टर-नाम तत्व में है। अधिक जानकारी के लिए प्रतिनिधि प्रतिनिधि के लिए Javadoc पढ़ें
तो, अगर मैं इसे अपने से बाहर निकालता हूं web.xml
, तो क्या होगा? मेरे सर्वलेट स्प्रिंग कंटेनर के साथ संवाद करने में सक्षम नहीं होंगे? **