我有使用 Spring Security SAML 扩展(1.0 版)的 java web 应用程序,充当 SP。此 SP 使用预配置的元数据,它适用于基于浏览器的客户端。我现在正在尝试添加 ECP 支持,并且已将以下内容添加到元数据 bean 中的 SP 扩展元数据 bean:
<property name="ecpEnabled" value="true"/>
我使用以下作为标头参数发出 GET 请求:
Accept: application/vnd.paos+xml
PAOS: ver='urn:liberty:paos:2003-08';'urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp'
我的网络应用程序抛出了这个异常:
HTTP 状态 500 - org.opensaml.saml2.metadata.provider.MetadataProviderException:服务提供者没有可用于所选配置文件 org.opensaml.saml2.metadata.impl.SPSSODescriptorImpl@7fe2dde8 的断言消费者服务
...根本原因...
org.opensaml.saml2.metadata.provider.MetadataProviderException:服务提供者没有可用于所选配置文件的断言消费者服务 org.opensaml.saml2.metadata.impl.SPSSODescriptorImpl@7fe2dde8 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 部分中没有提到任何关于此的内容。