java - 如何将密码传递给java(Spring boot)应用程序

标签 java spring-boot ssl password-protection password-encryption

我们必须为通过 springboot 应用程序创建的 rest web 服务使用 ssl 证书。

现在,我了解到使用证书需要密码。因此,我们正在使用 openssl 将可用的 .pem(无密码)更改为 .p12(有密码)。现在我们必须向 spring 提供这个密码。

问题是引入任何新密码所带来的开销。

由于设计不当,我们无法在 application.properties 中硬编码此密码。所以我们正在考虑找出其他在应用程序中使用密码的方法。到目前为止,我可以想到以下选项。哪个更好,为什么?

  1. 与其在 application.properties 中设置密码,不如从 java 代码中设置。 (不确定会设置成环境变量还是系统变量)

  2. 使用环境变量存储密码。

  3. 使用任何存储密码的文本文件(由于设计不佳,不再首选)

最佳答案

您可以通过以下方式实现您的场景。

我正在发布示例。\

在属性文件中:

spring.datasource.url=${db.url}
spring.datasource.username=${db.username}

在启动项目时,

你可以给出以下命令:

java -jar -Ddb.url=jdbc:postgresql://localhost:5432/postgres -Ddb.username=postgres  sample.0.0.1-SNAPSHOT.jar(your jar name)

关于java - 如何将密码传递给java(Spring boot)应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58449802/

相关文章:

java - 如何使用jsoup提交表单

java - 在内存中创建文本文件以供下载?

ssl - Websphere Application Server - HTTPClient - SSL Peer unauthenticated

java - 如何使用 CacheConfiguration.setIndexedTypes 进行 Ignite 缓存

java - 在 Java 中不使用 Cipher 实现 RSA

java - Spring Boot 覆盖其他应用程序文件中的属性

java - 如何使用 @JmsListener 暂停和开始消费消息

java - 如何从其文件中获取证书类型?

python - 由于 EnvironmentError : Could not find a suitable TLS CA certificate bundle, 路径无效,无法安装包

java - JAX-WS 收到响应时 SOAP 中出现神秘错误