不知道你是否已经设法升级到opensaml 3,但是由于我在尝试自己升级时遇到了这个问题,我想我会记录我的发现。
文档很少,因为显然目前这不是他们的优先事项(这里也提到了OpenSaml3文档),我发现的最有用的(即使到目前为止还不完整)页面是这个:https://wiki.shibboleth.net/confluence/display/OS30/Initialization+and+Configuration
1) 在 lib 中有一个带有方法的类SerializeSupport
prettyPrintXML
net.shibboleth.utilities:java-support
2) 初始化现在通过以下方式完成:InitializationService
InitializationService.initialize();
您可以通过以下方式检索构建器/编组器,例如:XMLObjectProviderRegistrySupport
XMLObjectProviderRegistrySupport.getMarshallerFactory()
XMLObjectProviderRegistrySupport.getBuilderFactory()
XMLObjectProviderRegistrySupport.getUnmarshallerFactory()
请注意,opensaml 使用的是 Java Service Provider API。在我的情况下(使用OSGi捆绑包),为了解析SAML断言,我添加了包含以下条目的SPI配置:org.apache.servicemix.bundles:org.apache.servicemix.bundles.opensaml
META-INF/services/org.opensaml.core.config.Initializer
org.opensaml.core.xml.config.XMLObjectProviderInitializer
org.opensaml.core.xml.config.GlobalParserPoolInitializer
org.opensaml.saml.config.XMLObjectProviderInitializer
org.opensaml.saml.config.SAMLConfigurationInitializer
org.opensaml.xmlsec.config.XMLObjectProviderInitializer
编辑:上述方法在测试中起作用,但在 OSGi 容器中未运行。OSGi 的解决方法:在 OSGi 容器中找不到 OpenSAML3 资源“默认配置.xml”
如果使用标准库 (, , , , ...),则可能不需要添加任何 SPI 配置,因为 jar 已经包含具有用于初始化的标准配置的 SPI 配置。org.opensaml:opensaml-core
org.opensaml:opensaml-saml-api
org.opensaml:opensaml-saml-impl
3)lib中有一个类。我没有看到在初始化期间提供密钥的替代方法。BasicCredential
org.opensaml:opensaml-security-api