Jenkins 掩码密码插件仍在控制台输出中显示密码

Jenkins 掩码密码插件仍在控制台输出中显示密码,jenkins,passwords,jenkins-pipeline,credentials,masking,Jenkins,Passwords,Jenkins Pipeline,Credentials,Masking,我们需要屏蔽来自管道作业的密码,我们使用了掩码密码2.10.1,凭证和凭证绑定插件。但我们仍然看到密码在作业控制台输出中被公开 代码: node { { withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'c6989249-6a8d-4618-9fd7-012720791e12', usernameVariable: 'artifact_id', passwordVariable: 'arti

我们需要屏蔽来自管道作业的密码,我们使用了掩码密码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
输出:

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

请帮助解决此问题

在管道运行期间,应在整个管道脚本中定义/创建Groovy变量
工件

此外,您使用
包装行中的字符串:
sh”echo$artifact\u id$artifact\u pwd“
,这将导致Groovy首先进行变量替换,因此
$artifact\u pwd
将替换为同名Groovy变量的值

如果您不希望对字符串进行变量替换,则可以使用
'
'
包装字符串,如下所示:

sh 'echo $artifact_id $artifact_pwd' 
//or 
sh '''echo $artifact_id $artifact_pwd'''

您可以替换
sh“echo$artifact\u id$artifact\u pwd”“
sh'echo$artifact\u id$artifact\u pwd'
,然后再次运行以查看将输出什么。

您使用的是什么版本的Jenkins和插件?他们在积压工作中提到了很多关于屏蔽pwd的内容。Jenkins是2.89.3,插件是掩码密码2.10,凭证插件2.1.16,凭证绑定插件1.15btw,你检查过了吗:?有点奇怪,$artifact_id被屏蔽了,但$artifact_pwd被屏蔽了。如果jenkins或plugin有问题,那么两者都应该被屏蔽或不屏蔽。请仔细检查您是否在整个管道脚本的某个地方将
artifact\u pwd
定义为Groovy变量。或者在
sh'echo$artifact\u id$artifact\u pwd'
上将
更改为
,以查看将输出什么,