我正在将Java 8项目中的OpenSAML从2.6.1升级到3.3.1 许多代码编译错误很容易修复,但是我被困在某个位置。
如果我们使用签名算法,则以前有以下代码:
KeyPair signingKeyPair = parseKeyPair(properties.getProperty("signingKey"), properties.getProperty("signingKeyPassword"));
signingCredential = createCredential(signingKeyPair, serviceProviderID, UsageType.SIGNING);
if (properties.getProperty("signingAlgorithm") != null) {
SecurityConfiguration securityConfiguration = Configuration.getGlobalSecurityConfiguration();
if (securityConfiguration instanceof BasicSecurityConfiguration && "RSA".equals(signingCredential.getPublicKey().getAlgorithm())) {
((BasicSecurityConfiguration) securityConfiguration).registerSignatureAlgorithmURI("RSA", properties.getProperty("signingAlgorithm"));
}
}
在OpenSAML 3.0+中,一行Configuration.getGlobalSecurityConfiguration();。不再编译。如何在OpenSAML 3.0+中获得全局安全性配置?
答案 0 :(得分:0)
免责声明:我以前没有使用过这些安全配置类,但是我有一些从OpenSAML 2.x升级到3.x的经验,并且在OpenSAML文档和源代码中进行了摸索。
我希望这会帮助您入门:
// initializes the various security configurations
GlobalSecurityConfigurationInitializer.init();
// fetches the various security configurations
DecryptionConfiguration dc = SecurityConfigurationSupport.getGlobalDecryptionConfiguration();
EncryptionConfiguration ec = SecurityConfigurationSupport.getGlobalEncryptionConfiguration();
SignatureSigningConfiguration ssc = SecurityConfigurationSupport.getGlobalSignatureSigningConfiguration();
SignatureValidationConfiguration svc = SecurityConfigurationSupport.getGlobalSignatureValidationConfiguration();
我不确定这些配置中的哪些配置可以满足您所需的功能,但这是Javadocs,其中包含一些其他详细信息:
您也可以check out the OpenSAML source;具体来说,DefaultSecurityConfigurationBootstrap
类是其中很多设置的地方。