詹金斯:withCredentials()无法访问用户范围凭据,因此我可以使用任何方式来访问用户凭据吗?

时间:2018-10-17 21:27:52

标签: jenkins

我正在尝试配置一个测试作业以使用withCredentials()访问jenkins中的用户凭证,但是它不起作用。我使用“授权项目插件”,并使用选项“以触发构建的用户身份运行”来配置作业

node{
     withCredentials([usernamePassword(credentialsId: 'mytoken', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
        usernameLocal = env.USERNAME
        passwordLocal = env.PASSWORD
     }
echo "echo vars: ${usernameLocal} - ${passwordLocal}"
}

以下是输出的前三行:

org.jenkinsci.plugins.credentialsbinding.impl.CredentialNotFoundException: Could not find credentials entry with ID 'mytoken'
at org.jenkinsci.plugins.credentialsbinding.MultiBinding.getCredentials(MultiBinding.java:153)
at org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding.bind(UsernamePasswordMultiBinding.java:76)

您会看到它找不到用户范围中已经定义的ID为“ mytoken”的凭据条目。

我做了很多搜索,发现使用withCredentials()可能是不可能的。那么,有什么方法可以访问用户凭证范围?

谢谢。

2 个答案:

答案 0 :(得分:0)

您是否可以使用类似的方式访问工作中的凭据

pipeline {
    agent { label 'slave'}
    stages {
        stage('Example') {
            environment { 
                ARTIFACTORY_CREDENTIALS = credentials('artifactory') 
            }
            steps {
                echo "user: $ARTIFACTORY_CREDENTIALS_USR password: $ARTIFACTORY_CREDENTIALS_PSW"
            }
        }
    }
}    

答案 1 :(得分:0)

此凭据未标记为全局。
选择凭据-特定的Credentilas-更新-范围