在application.properties
中,我想存储这些数据:
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=my-email
spring.mail.password=my-email-password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
由于我的Git仓库是公开的,我不希望任何人看到我的电子邮件和密码。
因为我在Windows 11上,环境变量是一个选项。但是一旦我打开这个窗口,坐在我旁边的每个人都可以看到我的密码,因为它只是纯文本。
我希望我的密码是安全的,即使它只存储在我自己的计算机上。
因此,我认为在Windows上将详细信息存储在凭据管理器中而不是环境变量是一种更好的方法。我使用的是依赖项spring-cloud-starter-vault-config
,版本4.0.0。
在凭据管理器中,我添加了一个通用凭据,并将其命名为 Gmail。这是我在application.yml中尝试的:
spring:
cloud:
vault:
uri: vault://wincred/Gmail
mail:
host: smtp.gmail.com
port: 587
username: ${vault.generic.Gmail.username}
password: ${vault.generic.Gmail.password}
properties:
mail:
smtp:
auth: true
starttls:
enabled: true
但我有这些例外:
原因:java.lang.非法参数异常:无法从保管库检索默认端口://wincred/Gmail
原因:java.net.MalformedURLException:未知协议:拱顶
我所尝试的是可能的吗?
2条答案
按热度按时间uqjltbpv1#
不可能。Windows凭据管理器与Hashicorp Vault没有连接。
c7rzv4ha2#
凭据管理器实际上是为管理内部操作系统功能(如Multiple Provider Router)使用的凭据而设计的。
Windows确实提供了一组加密API,包括Data Protection API,该API旨在使用从用户登录密码派生的加密密钥安全存储任意信息。