Jenkins管道在Plaintex中显示密码

时间:2019-05-20 06:44:55

标签: jenkins groovy

我正在从credentials插件中检索用户名密码。 然后将这些值另存为环境变量。我在流水线的后期阶段,在sh块中使用密码作为curl的参数。 此时,密码在构建日志中以纯文本显示。有办法避免这种情况吗?我假设使用credentials插件会掩盖密码。

pipeline {
 stages {
  stage ('One') {
  steps {
   withCredentials([userNamePassword(credentialsId: 'my_cred', userNameVariable: 'User_Name', passwordVariable: 'Password')]){
 env.User_Name = User_Name
 env.Password = Password
    }
  }
 }
 stage ('Two') {
   sh '''
    curl -v -u ${User_Name}:${Password} ...
    '''
  }
 }
}

注意:我正在使用curl将文件上传到远程主机。

2 个答案:

答案 0 :(得分:0)

是的。密码将以纯文本显示。 提出请求的最佳方法是使用HTTP Request Plugin。 您可以在标题的“授权”中传递凭据,而不是URL。

答案 1 :(得分:0)

我最终在curl块内使用了withCredentials

withCredentials([userNamePassword(credentialsId: 'my_cred', userNameVariable: 'User_Name', passwordVariable: 'Password')]){
   sh '''
    curl -v -u ${User_Name}:${Password} ...
      '''
}