【发布时间】:2018-08-14 06:53:27
【问题描述】:
我们需要从管道作业中屏蔽密码,我们使用了屏蔽密码 2.10.1、凭据和凭据绑定插件。但我们仍然看到密码在作业控制台输出中暴露。
代码:
node {
{
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'c6989249-6a8d-4618-9fd7-012720791e12', usernameVariable: 'artifact_id', passwordVariable: 'artifact_pwd']]){
echo "password masking"
sh "echo $artifact_id $artifact_pwd "
}}
输出:
[Pipeline] {
[Pipeline] withCredentials
[Pipeline] {
[Pipeline] echo
password masking
[Pipeline] sh
[workspace] Running shell script
+ echo **** 'Test!123'
**** Test!123
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
请帮忙解决这个问题
【问题讨论】:
-
您使用的是什么版本的 Jenkins 和插件?他们在积压的文件中有很多关于屏蔽密码的提及。这些都在慢慢修复。
-
Jenkins 是 2.89.3,插件是 Mask Password 2.10,凭据插件 2.1.16,凭据绑定插件 1.15
-
顺便说一句,您检查了吗:stackoverflow.com/questions/51834768/…?
-
有点奇怪,$artifact_id 被屏蔽了,但 $artifact_pwd 没有屏蔽。如果 jenkins 或插件有问题,两者都应该被屏蔽或取消屏蔽。请仔细检查您在整个管道脚本的某处将
artifact_pwd定义为 Groovy 变量。或者把sh 'echo $artifact_id $artifact_pwd'上的"改成'看看会输出什么,
标签: jenkins passwords jenkins-pipeline credentials masking