2016-08-13 12 views
7

का उपयोग कर माइक्रोस्कोप के लिए कस्टम सुरक्षा फ़िल्टर कैसे बनाएं मेरे पास स्प्रिंग सुरक्षा का न्यूनतम बुनियादी विचार है। मैं एक ऐसे अनुप्रयोग के लिए कई माइक्रोस्कोप विकसित करना चाहता हूं जहां मैं एक बिंदु प्रमाणीकरण और प्राधिकरण को नियोजित करना चाहता हूं जिसका उपयोग सभी माइक्रोस्कोपिस में किया जा सकता है। इसे और अधिक विशिष्ट बनाने के लिए, मैं एक सामान्य फ़िल्टर बनाना चाहता हूं जिसका उपयोग केवल प्रत्येक माइक्रोस्कोप अनुप्रयोगों के web.xml में किया जा सकता है। मैं सभी सूक्ष्मजीवों में अनुवर्ती उपयोग नहीं करना चाहता हूं।वसंत सुरक्षा

वसंत-security.xml

<http> 
     <intercept-url pattern="/index*" access="ROLE_USER" /> 
     <access-denied-handler error-page="/customaccessdenied.jsp" /> 
     <intercept-url pattern="/manage*" access="ROLE_ADMIN" /> 
     <form-login default-target-url="/index" always-use-default-target="true"/> 
     <logout/> 
     <!-- <remember-me/> --> 
    </http> 

    <authentication-manager> 
     <authentication-provider> 
      <user-service> 
       <user name="admin" password="admin" authorities="ROLE_ADMIN,ROLE_USER" /> 
       <user name="deb" password="deb" authorities="ROLE_USER" /> 
      </user-service> 
     </authentication-provider> 
    </authentication-manager> 



web.xml 
======= 
<!-- Spring Security --> 
    <filter> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

मैं सभी microservices में ऊपर का उपयोग नहीं करना चाहते हैं। मेरा आवेदन छवि के नीचे दिखना चाहिए।

enter image description here

कृपया मेरी मदद करो कि यह कैसे प्राप्त करने के लिए, यदि आप किसी भी नमूने आवेदन किया है, मुझे लिंक प्रदान करें। फिर पूरी बात यह है कि सभी सुरक्षा संबंधित सामान एक ही स्थान पर रखें और उस पुस्तकालय और कस्टम फ़िल्टर का उपयोग केवल सभी माइक्रो सेवाओं के web.xml करें।

मैं इस

<filter> 
     <filter-name>mySecurityFilterChain</filter-name> 
     <filter-class>com.world.india.DelegatingFilterProxy</filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>mySecurityFilterChain</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

की तरह प्राप्त करने के लिए कृपया मुझे इस संबंध में आपकी मदद की जरूरत चाहते हैं। उम्मीद है कि यह दूसरों के लिए सहायक होगा।

+2

** मेरे लिए "मैं एक सामान्य फ़िल्टर कि केवल हर microservice आवेदनों की web.xml में इस्तेमाल किया जा सकता बनाना चाहते हैं मुझे क्या करना:

एक गैर XML आधारित विन्यास पर संकेत के लिए, इस सवाल का जवाब की जाँच करें। सभी सूक्ष्मजीवों में अनुवर्ती उपयोग नहीं करना चाहते हैं "** एक विरोधाभास की तरह लगता है। क्या आप विस्तृत कर सकते हैं। – jah

+0

आपको प्रमाणीकरण के लिए एक अलग सेवा की आवश्यकता है ताकि सभी अनधिकृत अनुरोधों को निर्देशित किया जा सके जो या तो आरईएसटी एपीआई या लॉग इन पेज का पर्दाफाश कर सकते हैं। अन्य सभी माइक्रो सेवाओं और वेब ऐप को केवल अधिकृत अनुरोध की अनुमति देनी चाहिए। यह आप विन्यास फाइल में सेट कर सकते हैं। इस तरह आपके सभी प्राधिकरण से संबंधित कोड एकल मॉड्यूल में रहेंगे। –

उत्तर

0

आप बस फ़ोल्डर में सभी विचारों को रख सकते हैं और कुछ भूमिका तक पहुंच सेट कर सकते हैं। तो/सेवा के साथ किसी भी अनुरोध/* एक लॉगिन स्क्रीन रीडायरेक्ट कर सकते हैं, जबकि अन्य सभी प्रमाणीकरण (/ *)

<http pattern="/resources/**" security="none" /> 
    <http> 
    <intercept-url pattern="/service/*" access="ROLE_ADMIN" /> 
    <access-denied-handler error-page="/customaccessdenied.jsp" /> 
    <intercept-url pattern="/manage*" access="ROLE_ADMIN" /> 
    <form-login default-target-url="/index" always-use-default-  target="true"/> 
    <logout/> 
    <!-- <remember-me/> --> 
</http> 

आप निम्नलिखित इस tutorial

0

अपने कस्टम सुरक्षा विन्यास सेट कर सकते हैं यह एक है की आवश्यकता नहीं हो सकता है आप जो पूछ रहे हैं उससे थोड़ा अस्पष्ट: आपकी छवि से ऐसा लगता है कि सभी माइक्रोस्कोप उसी वेब एप्लिकेशन में रहते हैं, जो उसी वेब.एक्सएमएल से कॉन्फ़िगर किया गया है, लेकिन आपका कोड स्निपेट इंगित करता है कि आपके माइक्रोस्कोप अलग-अलग वेब अनुप्रयोगों में रहेंगे, जो वास्तव में कुल ज्ञान

किसी भी तरह से:

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath:/common-security-config.xml</param-value> 
</context-param> 

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

common-security-config.xml एक ही वेब में सभी बच्चे आवेदन संदर्भों के लिए आधार आवेदन संदर्भ हो जाएगा: जहां सुरक्षा विन्यास निर्दिष्ट सिर्फ अपने web.xml में एक रूट आवेदन संदर्भ जोड़ने के लिए, आवेदन (आपके मामले में: सभी सूक्ष्मजीव आदि)। वहां अपनी वसंत सुरक्षा कॉन्फ़िगरेशन रखें और आपको ठीक होना चाहिए।

यदि आपके सभी माइक्रोस्कोप एक ही वेब एप्लिकेशन में रहते हैं, तो आपको बस इतना करना है; यदि नहीं, तो बस एक सामान्य मॉड्यूल बनाएं जिसमें सुरक्षा कॉन्फ़िगरेशन (src/main/resources में) और सुरक्षा कॉन्फ़िगरेशन के लिए आवश्यक सहायक वर्ग शामिल हो। उस मॉड्यूल का संदर्भ जोड़ें और सभी माइक्रोस्कोप मॉड्यूल के web.xml में सामान्य कॉन्फ़िगरेशन जोड़ें।

कृपया ध्यान दें कि किसी भी तरह से, आप विधि-स्तरीय सुरक्षा उपयोग करना चाहते हैं (उदाहरण के लिए @Secured का प्रयोग करके) इस विन्यास प्रत्येक बच्चे microservice के लिए विन्यास में शामिल किए जाने की आवश्यकता होगी।

0

इसके सार में आपका प्रश्न लगता है कि आप फिर से उपयोग करने योग्य वसंत सुरक्षा जावा कॉन्फ़िगरेशन (वसंत-सुरक्षा.एक्सएमएल के बजाय) चाहते हैं। यदि ऐसा है, तो आप या तो कस्टम सुरक्षा निर्भरता बना सकते हैं या सुरक्षा-जैसी-सेवा के लिए जा सकते हैं।

निर्भरता: एक जार में अपनी सुरक्षा कार्यान्वयन (उदा com.world.india.DelegatingFilterProxy) रखें, और अपनी सेवाओं से प्रत्येक के लिए एक निर्भरता के रूप में यह जार जोड़ें। इस प्रकार आपके सभी सुरक्षा परिवर्तन एक अलग मॉड्यूल से अलग होते हैं और जब भी आप सुरक्षा को अपग्रेड करते हैं, तो अन्य माइक्रो-सेवाओं में एकमात्र परिवर्तन निर्भरता संस्करण है।

सेवा: सेवा के रूप में भी अपने सुरक्षा एप्लिकेशन को तैनात करें। अब, आपकी अपनी दो सेवाओं (यानी सुरक्षा माइक्रो-सर्विस और अन्य माइक्रो-सर्विसेज) के बीच एक सुरक्षित हैंडशेक स्थापित करने के लिए समस्या कम हो गई है। इस दृष्टिकोण का उपयोग करते हुए, आपकी सुरक्षा सेवाओं के उन्नयन अन्य सेवाओं (जैसे ए-माइक्रो सेवा) उपभोग करने के लिए निर्बाध और पारदर्शी हैं (यदि आप सेवा-खोज तंत्र का उपयोग कर रहे हैं)। Configure Spring Security without XML in Spring 4

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