hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bindul Bhowmik (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HTTPCLIENT-1745) Proxy-Authorization header is not send within first request
Date Mon, 23 May 2016 18:01:13 GMT

    [ https://issues.apache.org/jira/browse/HTTPCLIENT-1745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15296765#comment-15296765
] 

Bindul Bhowmik commented on HTTPCLIENT-1745:
--------------------------------------------

Have you looked at the [Preemptive authentication section|https://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html#d5e717]
in the HTTP Client Tutorial?

> Proxy-Authorization header is not send within first request
> -----------------------------------------------------------
>
>                 Key: HTTPCLIENT-1745
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1745
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>    Affects Versions: 4.5.2
>            Reporter: welcometo
>
> I'm using Apache HttpComponents (4.5.2) and I'm trying to request HTTPS page via proxy
server (SSH Tunneling).
> The problem is that according to logs Client sends first request without Proxy-Authorization
header, but after Proxy respond with 407 error (Proxy Authentication Required), it retires
authentication with sending Proxy-Authorization header.
> May be problem  in my code and I need something like enabling primitive auth , but I
couldn't find any information about how to do that, so possibly it's a bug.
> Below is logs for confirming my words.
> This is first request: 
> {code}
>     <03:12:06,643 DEBUG headers:135 - http-outgoing-0 >> CONNECT t.myhost.com:443
HTTP/1.1
> 03:12:06,643 DEBUG headers:138 - http-outgoing-0 >> Host: t.myhost.com
> 03:12:06,643 DEBUG headers:138 - http-outgoing-0 >> User-Agent: Apache-HttpClient/4.5.2
(Java/1.8.0_45)
> 03:12:06,793 DEBUG headers:124 - http-outgoing-0 << HTTP/1.1 407 Proxy Authentication
Required
> 03:12:06,794 DEBUG headers:127 - http-outgoing-0 << Proxy-Authenticate: Basic realm="ProxyCompany"
> 03:12:06,794 DEBUG headers:127 - http-outgoing-0 << Proxy-Connection: close
> {code}
> Then it correctly retries request with included Proxy-Authorization header
> {code}
> 03:12:06,795 DEBUG HttpAuthenticator:77 - Authentication required
> 03:12:06,795 DEBUG HttpAuthenticator:107 - 162.243.116.56:71223 requested authentication
> 03:12:06,795 DEBUG ProxyAuthenticationStrategy:174 - Authentication schemes in the order
of preference: [Negotiate, Kerberos, NTLM, Digest, Basic]
> 03:12:06,795 DEBUG ProxyAuthenticationStrategy:203 - Challenge for Negotiate authentication
scheme not available
> 03:12:06,796 DEBUG ProxyAuthenticationStrategy:203 - Challenge for Kerberos authentication
scheme not available
> 03:12:06,796 DEBUG ProxyAuthenticationStrategy:203 - Challenge for NTLM authentication
scheme not available
> 03:12:06,796 DEBUG ProxyAuthenticationStrategy:203 - Challenge for Digest authentication
scheme not available
> 03:12:06,800 DEBUG HttpAuthenticator:157 - Selected authentication options: [BASIC [complete=true]]
> 03:12:06,800 DEBUG DefaultManagedHttpClientConnection:81 - http-outgoing-0: Close connection
> 03:12:06,801 DEBUG DefaultHttpClientConnectionOperator:138 - Connecting to /162.243.116.56:71223
> 03:12:06,942 DEBUG DefaultHttpClientConnectionOperator:145 - Connection established 192.168.0.100:13391<->162.243.116.56:71223
> 03:12:06,942 DEBUG HttpAuthenticator:198 - Generating response to an authentication challenge
using basic scheme
> 03:12:06,947 DEBUG headers:135 - http-outgoing-0 >> CONNECT t.myhost.com:443 HTTP/1.1
> 03:12:06,947 DEBUG headers:138 - http-outgoing-0 >> Host: t.myhost.com
> 03:12:06,947 DEBUG headers:138 - http-outgoing-0 >> User-Agent: Apache-HttpClient/4.5.2
(Java/1.8.0_45)
> 03:12:06,947 DEBUG headers:138 - http-outgoing-0 >> Proxy-Authorization: Basic
bHVtXXXXXXXXXXXXxOTE5NTUXXXXXXRmNmRkYmI1Mjk0MA==
> 03:12:07,304 DEBUG HttpAuthenticator:86 - Authentication succeeded
> 03:12:07,305 DEBUG ProxyAuthenticationStrategy:227 - Caching 'basic' auth scheme for
http://162.243.116.56:71223 
> {code}
> And this is my code (it's Scala, but pretty easy to read):
> {code}
> val credProvider = {
>   val provider = new BasicCredentialsProvider()
>   provider.setCredentials(AuthScope.ANY,
>     new UsernamePasswordCredentials("myUser", "myPass"))
>   provider
> }
> val connManager = {
>   val mngr  = new PoolingHttpClientConnectionManager()
>   mngr.setDefaultMaxPerRoute(Integer.MAX_VALUE)
>   mngr.setMaxTotal(Integer.MAX_VALUE)
>   mngr
> }
> val client = HttpClients.custom()
>   .setConnectionManager(connManager)
>   .disableRedirectHandling()
>   .setDefaultCredentialsProvider(credProvider)
>   .setProxy(new HttpHost(162.243.116.56, 71223 ))
>   .build()
>      val requestConfig = RequestConfig.custom()
>        .setConnectTimeout(30000)
>        .setConnectionRequestTimeout(30000)
>        .build()
>      val request = new HttpGet(url)
>      request.setConfig(requestConfig)
>      val response = client.execute(request)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message