2014-10-02 134 views
0

我有使用Spring Security SAML擴展(版本1.0)的java web應用程序,充當SP。該SP使用預先配置的元數據,對於基於瀏覽器的客戶端來說它工作得很好。現在我想補充ECP支持,我已經添加了以下內容元數據bean中SP的擴展元數據的bean:Spring Security SAML和ECP

<property name="ecpEnabled" value="true"/> 

我就與以下內容作爲標題PARAMS GET請求:

Accept: application/vnd.paos+xml 
PAOS: ver='urn:liberty:paos:2003-08';'urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp' 

我的web應用程序將引發此異常:

HTTP狀態500 - org.opensaml.saml2.metadata.provider.MetadataProviderException:服務提供商可供選擇的配置文件沒有斷言消費服務或[email protected]

...根源......

org.opensaml.saml2.metadata.provider.MetadataProviderException:服務提供商已沒有可用於斷言使用者服務所選擇的簡檔[email protected] org.springframework.security.saml.websso.WebSSOProfileImpl.getAssertionConsumerService(WebSSOProfileImpl.java:205) org.springframework.security.saml.websso.WebSSOProfileECPImpl。 sendAuthenticationRequest(WebSSOProfileECPImpl.java:55) org.springframework.security.saml.SAMLEntryPoint.initializeECP(SAMLEntryPoint.java:185).....

所以它看起來像試圖啓動ECP過程,但我不明白爲什麼我得到這個異常。我遵循Spring的SAML文檔,並沒有在ECP部分提到任何有關這方面的內容。

回答

0

確保您的SP元數據包含具有約束力的端點urn:oasis:names:tc:SAML:2.0:bindings:PAOS

春SAML示例應用程序的元數據生成UI都有一個複選框將其納入,或將其添加到MetadataGenerator豆,使用屬性bindingSSO,例如:

<property name="bindingsSSO"> 
    <list> 
     <value>post</value> 
     <value>artifact</value> 
     <value>paos</value> 
    </list> 
</property> 
+0

這做到了!謝謝弗拉德! – AndyB 2014-10-03 17:05:19