誰かが基本認証でJenkinsfileパイプラインでhttpRequestを使用する方法を知っていますか? https://github.com/jenkinsci/http-request-pluginでチェックしましたが、基本認証をサポートしています(グローバル設定を参照)。しかし、私がグルーヴィースクリプトで実装したとき、私は次のエラーを発見しました。誰でも、httprequestにユーザー名とパスワードを渡す方法を示すことができます。基本認証を使用してJenkinsfileパイプラインで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:org.kohsuke.stapler.ClassDescriptor.loadConstructorParamNames(ClassDescriptor.javaでクラスjava.lang.String のいずれかのコンストラクタには@DataBoundConstructorはありません。 org.jenkinsci.plugins.structs.describable.DescribableModelにおける247) 。(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 authrizationの問題。 しかし、私は正しい信用証明書を使用し、それらを訪問することができます。
私の認証形式が正しくないことが分かっていますが、正しい方法であるはずですか?おかげさまで
よろしく、
ありがとうございます。 HTTPリクエスト以外のエンドポイントの訪問を実現するための他の方法はありますか?私は、クレデンシャルIDの代わりにボールトに保存されているユーザー名とパスワードを願っています。 よろしく、 – neilxie
私は別の例で私の答えを編集しました。 –
ありがとうございます。しかし、私は信任状のエラーでここで新たな問題に会った。 – neilxie