OpenSAML 3.0+ 中的全局安全配置

Global security configuration in OpenSAML 3.0+

我正在将 Java 8 项目中的 OpenSAML 从 v 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+ 中获取全局安全配置?

免责声明:我以前没有使用过这些安全配置 classes,但我有一些从 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 class 是其中很多设置的地方。