我在Spring项目中使用SAML模块。
<dependency>
<groupId>org.springframework.security.extensions</groupId>
<artifactId>spring-security-saml2-core</artifactId>
<version>1.0.3.RELEASE</version>
// Central storage of cryptographic keys
@Bean
public KeyManager keyManager() {
DefaultResourceLoader loader = new DefaultResourceLoader();
org.springframework.core.io.Resource storeFile = loader
.getResource(this.keystore);
String storePass = this.keyStorePassword;
Map<String, String> passwords = new HashMap<>();
passwords.put(this.defaultKey, keyPassword);
return new JKSKeyManager(storeFile, storePass, passwords, this.defaultKey);
}
问题是证书是由AWS Certificate Manager颁发的,不再位于jar文件中的密钥库文件中。 SAML需要SSL证书才能为服务提供商生成元数据。
是否可以通过Spring Boot集成或访问AWS颁发的证书?
我想的一种方法是在应用程序加载期间使用AWS api动态获取证书详细信息,然后使用该信息创建JKSKeyManager
,但这可能会降低应用程序的加载速度。