वसंत-सुरक्षा में FilterInvocationSecurityMetadataSourceParser वर्ग अवरोधन-यूआरएल टैग पार्स करके ExpressionBasedFilterInvocationSecurityMetadataSource के उदाहरण बनाता है, कि DefaultFilterInvocationSecurityMetadataSource कि FilterInvocationSecurityMetadataSource कि SecurityMetadataSource फैली लागू करता फैली (Ctrl/Cmd + स्रोत कोड के साथ एसटीएस में Shift + T कोशिश)।
मैं क्या था कि FilterInvocationSecurityMetadataSource लागू करता है एक कस्टम वर्ग, OptionsFromDataBaseFilterInvocationSecurityMetadataSource तैयार करना है। मैंने समर्थन() विधि और कुछ ऐसा करने के लिए urlMatcher का उपयोग करने के लिए डिफ़ॉल्ट के रूप में DefaultFilterInvocationSecurityMetadataSource का उपयोग किया।
फिर आप इन तरीकों को लागू करने के कार्य करने होंगे:
संग्रह getAttributes (वस्तु वस्तु), जहाँ आप डेटाबेस के लिए उपयोग कर सकते हैं, 'वस्तु' के लिए खोज प्राप्त करने के लिए (सामान्य रूप से उपयोग करने के लिए यूआरएल) सुरक्षित किया जा रहा अनुमति ConfigAttribute के (सामान्य रूप से भूमिका है)
बूलियन का समर्थन करता है (कक्षा clazz)
संग्रह getAllConfigAttributes()
बाद में सावधान रहें, क्योंकि इसे स्टार्टअप पर बुलाया जाता है और शायद इस समय आपके द्वारा उपयोग किए जा रहे कार्यों के आधार पर डेटा स्रोत या दृढ़ता संदर्भ के साथ स्वचालित रूप से कॉन्फ़िगर नहीं किया गया है)। वेब वातावरण में समाधान web.xml में applicationContext.xml को लोड करने के लिए webCxxt में कॉन्फ़िगरेशन कॉन्फ़िगर करना है। कॉन्टैक्ट-सुरक्षा.एक्सएमएल
अंतिम चरण इस बीन को लोड करने के लिए applicationContext-security.xml को कस्टमाइज़ करना है।
कर रही के लिए, मैं सुरक्षा नाम स्थान के बजाय इस फ़ाइल में नियमित सेम का प्रयोग किया:
<beans:bean id="springSecurityFilterChain" class="org.springframework.security.web.FilterChainProxy">
<filter-chain-map path-type="ant">
<filter-chain pattern="/images/*" filters="none" />
<filter-chain pattern="/resources/**" filters="none" />
<filter-chain pattern="/**" filters="
securityContextPersistenceFilter,
logoutFilter,
basicAuthenticationFilter,
exceptionTranslationFilter,
filterSecurityInterceptor"
/>
</filter-chain-map>
</beans:bean>
आप सभी संबंधित सेम परिभाषित करने के लिए किया है। उदाहरण के लिए:
<beans:bean id="filterSecurityInterceptor" class="org.springframework.security.web.access.intercept.FilterSecurityInterceptor">
<beans:property name="authenticationManager" ref="authenticationManager"></beans:property>
<beans:property name="accessDecisionManager" ref="affirmativeBased"></beans:property>
<beans:property name="securityMetadataSource" ref="optionsFromDataBaseFilterInvocationSecurityMetadataSource"></beans:property>
<beans:property name="validateConfigAttributes" value="true"/></beans:bean>
मुझे पता है कि एक अच्छी तरह से समझाया जवाब नहीं है, लेकिन यह के रूप में ऐसा लगता है के रूप में मुश्किल नहीं है।
बस वसंत स्रोत का आधार के रूप में उपयोग करें और आप जो चाहते हैं उसे प्राप्त करेंगे।
आपके डेटाबेस में डेटा के साथ डिबगिंग, आपको बहुत मदद करेगा।
यह सहायक हो सकती:: https:
customAuthenticationProvider बनाने विधि एक सेम
CustomAuthenticationProvider कक्षा में है //github.com/srinivas1918/spring-security-dynamic प्राधिकरण-और-प्रमाणीकरण –