gpt4 book ai didi

jenkins - 如何在 Jenkinsfile 管道中使用 httpRequest 进行基本身份验证

转载 作者:行者123 更新时间:2023-12-02 13:16:49 25 4
gpt4 key购买 nike

有谁知道如何在 Jenkinsfile 管道中使用 httpRequest 进行基本身份验证?我 checkin 了https://github.com/jenkinsci/http-request-plugin ,它们支持支持基本身份验证(请参阅全局配置)。但是当我在我的groovy脚本中实现时,我发现了以下错误。任何人都可以展示如何将用户名和密码传递给httprequest。

def masterDataReplicatorTriggerDeployment() {
milestone 40
VaultUtil vaultUtil = PipelineUtil.getInstance(this).getProdVaultUtil()
def ROUTER_USER
def ROUTER_PASS
def baseurl="http://master-data-replicator.cfapps.us10.hana.ondemand.com"
def sourcetenant="revcdevkp"
def targettenant="revcdevpo"
def copyBCdata="/replicator/v1/businessConfig/"
def response


ROUTER_USER=vaultUtil.readCredential
("secret/landscapes/infrastructure/router").get("router.security.username")
ROUTER_PASS=vaultUtil.readCredential
("secret/landscapes/infrastructure/router").get("router.security.password")
response = httpRequest url:
baseurl+copyBCdata+sourcetenant+"/"+targettenant,
httpMode: 'POST',
authentication: [Username: ROUTER_USER, Password: ROUTER_PASS]

}

org.kohsuke.stapler.NoStaplerConstructorException:类 java.lang.String 的任何构造函数上都没有 @DataBoundConstructor 在 org.kohsuke.stapler.ClassDescriptor.loadConstructorParamNames(ClassDescriptor.java:247) 在 org.jenkinsci.plugins.structs.describable.DescribableModel.(DescribableModel.java:122) 在 org.jenkinsci.plugins.structs.describable.DescribableModel.coerce(DescribableModel.java:380) 在

     def creds = "ROUTER_USER:ROUTER_PASS"
String auth = creds.bytes.encodeBase64().toString()
httpRequest consoleLogResponseBody: true,
url: baseurl+copyBCdata+sourcetenant+"/"+targettenant,
customHeaders:[[name:'Authorization', value:"Basic ${auth}"]]

新问题:401授权问题。但我确实使用了正确的凭据并且可以访问它们。

我知道我的身份验证格式不正确,您知道哪种方式是正确的吗?谢谢。

最诚挚的问候,

最佳答案

使用凭证插件Credential plugin用于存储您的凭据。然后在 httpRequest 中使用该 ID。

Example :

New credential

Scope : Global
Username : my_technical_user
Password : *******
ID : my_user_id

httpRequest

httpRequest httpMode: 'POST',
url: "${baseurl}${copyBCdata}${sourcetenant}/${targettenant}",
authentication: 'my_user_id'

或者您可以直接在标题中注入(inject)您的用户名和密码。

def creds = "your_username:your_password"
String auth = creds.bytes.encodeBase64().toString()
httpRequest consoleLogResponseBody: true,
url: "your_url",
customHeaders:[[name:'Authorization', value:"Basic ${auth}"]]

关于jenkins - 如何在 Jenkinsfile 管道中使用 httpRequest 进行基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47485241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com