Torbilicious
Torbilicious

Reputation: 467

Basic Auth with Jenkins http-request-plugin

I am trying to make a simple POST-request with the "Http Request Plugin". My problem is with getting the credentials to work. I have set a global credential, user:pass.

But trying this in my code

withCredentials([usernameColonPassword(credentialsId: 'akamai', variable: 'akamai')]) {

    def response = httpRequest url: requestUrl, contentType: requestContentType, httpMode: requestHttpMode, requestBody: requestContent, authentication: akamai
    echo "Status: ${response.status}\nContent: ${response.content}"
}

results in

java.lang.IllegalStateException: Authentication 'user:pass' doesn't exist anymore

Upvotes: 19

Views: 47780

Answers (2)

Ian A
Ian A

Reputation: 6128

HTTP Request Plugin v1.8.18 now supports credentials in the Credentials Plugin (the HTTP Request Plugin v1.8.18 now depends on v2.1.3 of the Credentials Plugin).

To perform an HTTP request using a Jenkins credential you can use the following code:

def response = httpRequest authentication: 'credentialsID', url: "http://www.example.com"

where credentialsID is the ID of the credentials in Jenkins:

enter image description here

The basic credentials under Configure System > HTTP Request now states that the Basic/Digest Authentication is deprecated and to use Jenkins credentials instead:

enter image description here

Upvotes: 29

Torbilicious
Torbilicious

Reputation: 467

The Credentials for the Http Request Plugin are not managed by the Credentials Plugin but rather under Configure System -> HTTP Request like shown in the picture.

Upvotes: 4

Related Questions