下表列出了不同凭据类型的不同凭据存储实现。
凭证类型 | KeyStoreCredentialStore | 属性CredentialStore
---|---|
PasswordCredential | 支持 | 不支持
KeyPairCredential | 支持 | 不支持
SecretKeyCredential | 支持 | 支持
官方文档非常详细地描述了凭证存储实现的差异。然而,对于刚开始谈论这个话题的人来说,这可能会让人感到困惑。因此,我想根据我的经验简要描述一下差异和实际好处:
KeyStoreCredentialStore(即凭据存储(和PropertiesCredentialStore。
-
KeyStoreCredentialStore实现由Java KeyStore支持,该使用KeyStore实现提供的机制进行保护。如上表所示,它支持PasswordCredential、KeyPairCredential和SecretKeyCredential[/em>等凭据类型。
-
PropertiesCredentialStore是另一个专用于使用属性文件存储SecretKeyCredential的实现,其主要目的是为服务器环境提供初始密钥。它不对其存储的凭据提供任何保护,但仍然可以从文件系统级别将其访问限制为仅限于应用程序服务器进程。
在我的情况下,我需要SecretKeyCredential来加密服务器配置文件中的表达式(即明文中的密码(,并且我将我的SecretKey添加到受密码保护的KeyStoreCredentialStore中,而不是使用PropertiesCredentialStore。