2014-10-24 8 views
5

मैं एक मौजूदा एप्लिकेशन के साथ वसंत-सुरक्षा-सैम को एकीकृत करने का प्रयास कर रहा हूं ताकि उस सेवा को सेवा प्रदाता के रूप में कार्य करने की अनुमति मिल सके।एसपी मेटाडेटा उत्पन्न करते समय अप्रत्याशित स्टैक ट्रेस फॉर्म स्प्रिंग-सिक्योरिटी-एसएएमएल?

दुर्भाग्य से, मुझे काम करने के लिए मेटाडेटा फ़िल्टर नहीं मिल रहा है। वेबपैप बिना किसी झगड़े के बूट हो जाता है, लेकिन जब मैंने $ संदर्भपथ/सैम/मेटाडाटा मारा, तो मुझे अपने लॉग में निम्न स्टैक ट्रेस प्राप्त होता है।

2014-10-24 13:52:38,779 54025 [[email protected]] WARN org.mortbay.log - /sf/saml/metadata/ 
org.opensaml.saml2.metadata.provider.MetadataProviderException: No hosted service provider is configured and no alias was selected 
     at org.springframework.security.saml.context.SAMLContextProviderImpl.populateLocalEntity(SAMLContextProviderImpl.java:311) ~[spring-security-saml2-core 
-1.0.0.RELEASE.jar:1.0.0.RELEASE] 
     at org.springframework.security.saml.context.SAMLContextProviderImpl.populateLocalContext(SAMLContextProviderImpl.java:216) ~[spring-security-saml2-cor 
e-1.0.0.RELEASE.jar:1.0.0.RELEASE] 
     at org.springframework.security.saml.context.SAMLContextProviderImpl.getLocalEntity(SAMLContextProviderImpl.java:107) ~[spring-security-saml2-core-1.0. 
0.RELEASE.jar:1.0.0.RELEASE] 
     at org.springframework.security.saml.metadata.MetadataDisplayFilter.processMetadataDisplay(MetadataDisplayFilter.java:114) ~[spring-security-saml2-core-1.0.0.RELEASE.jar:1.0.0.RELEASE] 
     at org.springframework.security.saml.metadata.MetadataDisplayFilter.doFilter(MetadataDisplayFilter.java:88) ~[spring-security-saml2-core-1.0.0.RELEASE.jar:1.0.0.RELEASE] 
     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] 
     at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] 
     at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:166) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] 

मेरे मेटाडाटा विन्यास नीचे शामिल है:

<bean id="metadataGeneratorFilter" class="org.springframework.security.saml.metadata.MetadataGeneratorFilter"> 
    <constructor-arg ref="metadataGenerator"/> 
    </bean> 

    <bean id="metadataGenerator" class="org.springframework.security.saml.metadata.MetadataGenerator"> 
    <!--<property name="entityBaseURL" value="${env.shibboleth.entityBaseUrl"/>--> 
    <property name="bindingsSSO"> 
     <list> 
      <value>redirect</value> 
      <value>artifact</value> 
     </list> 
    </property> 
    <property name="entityId" value="${env.shibboleth.entityId}"/> 
    <prop 
    </bean> 

हम वर्तमान में उपयोग कर रहे हैं:

  • वसंत संस्करण: 4.0.4.RELEASE
  • वसंत सुरक्षा संस्करण: 3.2.3 .RELEASE
  • वसंत-सुरक्षा-सैम 2 संस्करण: 1.0.0.RELEASE

इस बिंदु पर, मैं एक नुकसान में काफी हद तक कर रहा हूँ, जैसा कि हम एक बहु tennancy सेटअप है, जो केवल जगह जो उर्फ ​​ विस्तार से उल्लेख किया गया है है करने के लिए कोशिश नहीं कर रहे हैं, और क्या से मैं यह कर सकते हैं देखें, metadataGenerator एक सेवा प्रदाता को परिभाषित करता है?

उत्तर

7

metadataGeneratorFilter जरूरतों MetadataDisplayFilter के आह्वान से पहले निष्पादित करने के लिए, अपने <security:http> तत्व में निम्नलिखित घोषणा शामिल करना सुनिश्चित करें:

<security:custom-filter before="FIRST" ref="metadataGeneratorFilter"/> 

इसके अलावा, entityId के लिए अपने मूल्य के सुझाव है कि आप प्रयोग कर रहे हैं लगता है एक ही entityId आपके आईडीपी (शिबबोलेथ) और एसपी (स्प्रिंग एसएएमएल एप्लिकेशन) दोनों के लिए। सुनिश्चित करें कि मूल्य दोनों इकाइयों के लिए अद्वितीय है।

+1

हैलो व्लादिमीर, क्या आपको समझ में आता है कि उपरोक्त आपके xml के बराबर जावाकॉन्फ़िग मेटाडेटा क्यों उत्पन्न नहीं करेगा? 'http.addFilterBefore (metadataGeneratorFilter(), ChannelProcessingFilter.class) .addFilterAfter (samlFilter(), BasicAuthenticationFilter.class);' बहुत धन्यवाद, सादर – nuvio

+0

SAMLContextProviderImpl: 244 एक अशक्त entityId इस सवाल में वर्णित के रूप में प्राप्त होगा। – nuvio

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