2017-05-12 15 views
1

古いスタイルのGroovy HttpBuilderコードをHttpBuilder-NGに変換しようとしています。私が古いスタイルでしなければならなかったことの1つは、基本的な認可を処理するために要求インターセプタを追加することでした。これは私がそれをHttpBuilder-NGで行う必要がありますどのようにHttpBuilder-NGで基本認証要求インターセプタを追加する適切な方法

def http = new RESTClient(url) 
    http.client.addRequestInterceptor(new HttpRequestInterceptor() { 
     void process(HttpRequest httpRequest, HttpContext httpContext) { 
      log.debug("Request intercepted, adding authorization") 
      httpRequest.addHeader('Authorization','Basic ' + "${username}:${password}".bytes.encodeBase64().toString()) 
     } 
    }) 
    return http 

古いHttpBuilderでそれをやったのですか? (そして、私はユーザーガイドを読んでいます)。

は、それがログにこれを取得ApacheHttpBuilderを使用しているので、私は尋ね16 /月/ 2017

を更新しました。

DEBUG - Authentication required 
DEBUG - gpdevjira.broadinstitute.org:8443 requested authentication 
DEBUG - Authentication schemes in the order of preference: [Negotiate, Kerberos, NTLM, Digest, Basic] 
DEBUG - Challenge for Negotiate authentication scheme not available 
DEBUG - Challenge for Kerberos authentication scheme not available 
DEBUG - Challenge for NTLM authentication scheme not available 
DEBUG - Challenge for Digest authentication scheme not available 
DEBUG - Challenge for Basic authentication scheme not available 

私は、リクエストインターセプタで古いHttpBuilderを使用して基本認証を処理することができました。

+0

動作します。組み込みの基本認証サポートを使用するだけです。 https://http-builder-ng.github.io/http-builder-ng/asciidoc/html5/#_authentication – cjstehno

+0

これはBAGバージョンではないNGバージョンである必要があります。自動修正! – cjstehno

答えて

0

JIRAが原因でここにいる場合、誤動作です。クライアントライブラリの問題ではなく、JIRAはいくつかの特別な動作をしています。次のコード

あなたはBAGのバージョンでインターセプタを必要はありません

def builder = HttpBuilder.configure { 
      request.uri = 'http://ies-iesd-jira.ies.mentorg.com:8080' 
      request.contentType = 'application/json' 
      // request.auth.digest("user","password", true) -->does not work with JIRA 
      request.headers['Authorization'] = 'Basic ' + 'user:password'.bytes.encodeBase64() 
     } 
+0

あなたのソリューションを試したところ、1.0.0バージョンのHttp-builder-ngで動作します –

関連する問題