Spring Boot Gradle 插件凭据
Posted
技术标签:
【中文标题】Spring Boot Gradle 插件凭据【英文标题】:Spring Boot Gradle plugin credentials 【发布时间】:2022-01-16 10:30:58 【问题描述】:我正在使用 Spring Boot Gradle 插件来构建 Docker 映像并将其推送到远程 Docker 注册表
bootBuildImage
imageName = "docker-repo/app-name"
publish = true
docker
publishRegistry
username = project.property('repoUsername')
password = project.property('repoPassword')
Docker 存储库凭据存储在 ~/.gradle/gradle.properties 中。
这安全吗?是否需要在 CI/CD 环境中存储类似的 ~/.gradle/gradle.properties 文件?
从安全角度来看,最好的方法是什么?
【问题讨论】:
【参考方案1】:我对此(意见)的看法是否定的。
使用 gradle.properties 将凭据存储为纯文本是一个坏主意。但它仍然可以广泛使用。
对我来说,我宁愿使用环境变量作为它高于纯文本的一层,在那里很难找到。
我可以向你保证,这两种方式都不好,但我想环境变量比纯文本更棘手。
这是我检索环境变量或查看 gradle.properties 的 gradle 方法
artifactoryUser = getConfigurationProperty("ARTIFACTORY_USER", "artifactoryUser", null)
artifactoryPwd = getConfigurationProperty("ARTIFACTORY_PWD", "artifactoryPwd", null)
String getConfigurationProperty(String envVar, String sysProp, String defaultValue)
def result = System.getenv(envVar) ?: project.findProperty(sysProp)
result ?: defaultValue
我使用它,我确信有一种更安全的方法。
【讨论】:
以上是关于Spring Boot Gradle 插件凭据的主要内容,如果未能解决你的问题,请参考以下文章
多模块 Spring Boot 项目中的 Gradle 依赖插件
Spring Boot gradle 插件强制 Mockito 版本
spring boot gradle 插件、应用程序插件和 gradle 2.3 包装器