2014-10-02 100 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