在spring-security-saml的“快速入门”指南中部署示例应用程序时,我发现网站元数据的导入错误对我来说不明白:
- FrameworkServlet 'saml': initialization completed in 399 ms Started Tomcat Server The Server is running at http://localhost:8080/spring-security-saml2-sample - Next refresh cycle for metadata provider 'https://shibboleth.example.org/inner-metadata.xml' will occur on '2015-10-27T08:47:06.933Z' ('2015-10-27T09:47:06.933+01:00' local time) - Metadata provider failed to properly initialize, fail-fast=true, halting org.opensaml.saml2.metadata.provider.MetadataProviderException: java.lang.NullPointerException at org.opensaml.saml2.metadata.provider.AbstractReloadingMetadataProvider.refresh(AbstractReloadingMetadataProvider.java:267) at org.opensaml.saml2.metadata.provider.AbstractReloadingMetadataProvider.doInitialization(AbstractReloadingMetadataProvider.java:236) at org.opensaml.saml2.metadata.provider.AbstractMetadataProvider.initialize(AbstractMetadataProvider.java:407) at org.springframework.security.saml.metadata.ExtendedMetadataDelegate.initialize(ExtendedMetadataDelegate.java:167) at org.springframework.security.saml.metadata.MetadataManager.initializeProvider(MetadataManager.java:412) at org.springframework.security.saml.metadata.MetadataManager.refreshMetadata(MetadataManager.java:238) at org.springframework.security.saml.metadata.CachingMetadataManager.refreshMetadata(CachingMetadataManager.java:86) at org.springframework.security.saml.metadata.MetadataManager$RefreshTask.run(MetadataManager.java:1040) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505) Caused by: java.lang.NullPointerException at org.opensaml.saml2.common.SAML2Helper.getEarliestExpiration(SAML2Helper.java:112) at org.opensaml.saml2.metadata.provider.AbstractReloadingMetadataProvider.processCachedMetadata(AbstractReloadingMetadataProvider.java:328) at org.opensaml.saml2.metadata.provider.AbstractReloadingMetadataProvider.refresh(AbstractReloadingMetadataProvider.java:258) ... 9 more - Initialization of metadata provider org.opensaml.saml2.metadata.provider.HTTPMetadataProvider@54b1cd failed, provider will be ignored org.opensaml.saml2.metadata.provider.MetadataProviderException: java.lang.NullPointerException at org.opensaml.saml2.metadata.provider.AbstractReloadingMetadataProvider.refresh(AbstractReloadingMetadataProvider.java:267) at org.opensaml.saml2.metadata.provider.AbstractReloadingMetadataProvider.doInitialization(AbstractReloadingMetadataProvider.java:236) at org.opensaml.saml2.metadata.provider.AbstractMetadataProvider.initialize(AbstractMetadataProvider.java:407) at org.springframework.security.saml.metadata.ExtendedMetadataDelegate.initialize(ExtendedMetadataDelegate.java:167) at org.springframework.security.saml.metadata.MetadataManager.initializeProvider(MetadataManager.java:412) at org.springframework.security.saml.metadata.MetadataManager.refreshMetadata(MetadataManager.java:238) at org.springframework.security.saml.metadata.CachingMetadataManager.refreshMetadata(CachingMetadataManager.java:86) at org.springframework.security.saml.metadata.MetadataManager$RefreshTask.run(MetadataManager.java:1040) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505) Caused by: java.lang.NullPointerException at org.opensaml.saml2.common.SAML2Helper.getEarliestExpiration(SAML2Helper.java:112) at org.opensaml.saml2.metadata.provider.AbstractReloadingMetadataProvider.processCachedMetadata(AbstractReloadingMetadataProvider.java:328) at org.opensaml.saml2.metadata.provider.AbstractReloadingMetadataProvider.refresh(AbstractReloadingMetadataProvider.java:258) ... 9 more
位于https://shibboleth.example.org/inner-metadata.xml
的元数据是组织中使用的签名元数据(很多SP数据,一些IdP),Internet2 shibboleth-sp没有问题。
spring-security-saml的IdP元数据的预期格式是什么?
答案 0 :(得分:0)
根据示例应用程序中提供的示例,IdP元数据包含单个IdP的数据,与组织元数据相反,很可能包含站点中所有SAML actor的所有SP和IdP元数据。
尝试提取单个IdP的元数据。