<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-29832</id>
	<title>Nabble - HttpComponents</title>
	<updated>2009-12-17T03:42:18Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/HttpComponents-f29832.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/HttpComponents-f29832.html" />
	<subtitle type="html">Apache HttpComponents are Java libraries for HTTP communication, including a flexible HttpClient implementation.</subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26826810</id>
	<title>[jira] Resolved: (HTTPCORE-211) Memory leak outside of the Heap when using non-keepalive SSL</title>
	<published>2009-12-17T03:42:18Z</published>
	<updated>2009-12-17T03:42:18Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCORE-211?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCORE-211?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Asankha C. Perera resolved HTTPCORE-211.
&lt;br&gt;----------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Resolution: Fixed
&lt;br&gt;&lt;br&gt;Fixed with svn commit: r891654
&lt;br&gt;&lt;br&gt;Sorry about the many line separator differences, the main fix was only to replace the &amp;quot;ByteBuffer.allocateDirect&amp;quot; calls with &amp;quot;ByteBuffer.allocate&amp;quot; to allocate on heap
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Memory leak outside of the Heap when using non-keepalive SSL
&lt;br&gt;&amp;gt; ------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: HTTPCORE-211
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCORE-211&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCORE-211&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: HttpComponents HttpCore
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: HttpCore NIO
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 4.0.1
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Asankha C. Perera
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Asankha C. Perera
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 4.0.2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The issue is discussed here : &lt;a href=&quot;http://markmail.org/message/7ni2qrgebajkvrzn&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/message/7ni2qrgebajkvrzn&lt;/a&gt;&lt;br&gt;&amp;gt; Although seen during load testing with non-keepalive SSL, the leak would be present in the keep-alive scenario too, although the leak would be less. The issue was seen on RHEL and CentOS, but not on Ubuntu.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26826810&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26826810&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28HTTPCORE-211%29-Memory-leak-outside-of-the-Heap-when-using-non-keepalive-SSL-tp26826612p26826810.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26826612</id>
	<title>[jira] Created: (HTTPCORE-211) Memory leak outside of the Heap when using non-keepalive SSL</title>
	<published>2009-12-17T03:24:18Z</published>
	<updated>2009-12-17T03:24:18Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">Memory leak outside of the Heap when using non-keepalive SSL
&lt;br&gt;------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: HTTPCORE-211
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCORE-211&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCORE-211&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: HttpComponents HttpCore
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Bug
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: HttpCore NIO
&lt;br&gt;&amp;nbsp; &amp;nbsp; Affects Versions: 4.0.1
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Asankha C. Perera
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Assignee: Asankha C. Perera
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Fix For: 4.0.2
&lt;br&gt;&lt;br&gt;&lt;br&gt;The issue is discussed here : &lt;a href=&quot;http://markmail.org/message/7ni2qrgebajkvrzn&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://markmail.org/message/7ni2qrgebajkvrzn&lt;/a&gt;&lt;br&gt;&lt;br&gt;Although seen during load testing with non-keepalive SSL, the leak would be present in the keep-alive scenario too, although the leak would be less. The issue was seen on RHEL and CentOS, but not on Ubuntu.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26826612&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26826612&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28HTTPCORE-211%29-Memory-leak-outside-of-the-Heap-when-using-non-keepalive-SSL-tp26826612p26826612.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26821666</id>
	<title>Re: Using multiple IP addresses</title>
	<published>2009-12-16T17:28:32Z</published>
	<updated>2009-12-16T17:28:32Z</updated>
	<author>
		<name>Tony Poppleton-2</name>
	</author>
	<content type="html">&lt;br&gt;Thanks, that is much easier than expected!
&lt;br&gt;Tony
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Message du 16/12/09 21:44
&lt;br&gt;&amp;gt; De : &amp;quot;Oleg Kalnichevski&amp;quot; 
&lt;br&gt;&amp;gt; A : &amp;quot;HttpClient User Discussion&amp;quot; 
&lt;br&gt;&amp;gt; Copie à : 
&lt;br&gt;&amp;gt; Objet : Re: Using multiple IP addresses
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Tony Poppleton wrote:
&lt;br&gt;&amp;gt; &amp;gt; Hi Christine,
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; I am just looking for the simplest solution. Using one http client and one connection manager would be nice, although not necessary if that is overcomplicated.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Thanks,
&lt;br&gt;&amp;gt; &amp;gt; Tony
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 'http.route.local-address' parameter is your friend.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://hc.apache.org/httpcomponents-client/tutorial/html/connmgmt.html#d4e473&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hc.apache.org/httpcomponents-client/tutorial/html/connmgmt.html#d4e473&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Oleg
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Message du 15/12/09 14:30
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; De : &amp;quot;Christine Karman&amp;quot; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; A : &amp;quot;HttpClient User Discussion&amp;quot; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Copie à : 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Objet : Re: Using multiple IP addresses
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Tony Poppleton wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I have two IP addresses on my computer, and would like to send out requests on both using a single Java application and HttpClient. Is this possible? I.e. one request sent out from the first IP, and the next request sent out from the second IP.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Do you want one instance of HttpClient to do so, and one connectionManager?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; dagdag
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Christine
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Tony
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; -- 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; dagdag is just a two-character rotation of byebye.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821666&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821666&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Orange vous informe que cet e-mail a ete controle par l'anti-virus mail. 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Aucun virus connu a ce jour par nos services n'a ete detecte.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821666&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821666&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt; Orange vous informe que cet e-mail a ete controle par l'anti-virus mail. 
&lt;br&gt;&amp;gt; Aucun virus connu a ce jour par nos services n'a ete detecte.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Using-multiple-IP-addresses-tp26786206p26821666.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26818129</id>
	<title>Re: Using multiple IP addresses</title>
	<published>2009-12-16T12:44:17Z</published>
	<updated>2009-12-16T12:44:17Z</updated>
	<author>
		<name>olegk</name>
	</author>
	<content type="html">Tony Poppleton wrote:
&lt;br&gt;&amp;gt; Hi Christine,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I am just looking for the simplest solution. &amp;nbsp;Using one http client and one connection manager would be nice, although not necessary if that is overcomplicated.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Tony
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&lt;br&gt;'http.route.local-address' parameter is your friend.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://hc.apache.org/httpcomponents-client/tutorial/html/connmgmt.html#d4e473&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hc.apache.org/httpcomponents-client/tutorial/html/connmgmt.html#d4e473&lt;/a&gt;&lt;br&gt;&lt;br&gt;Oleg
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; Message du 15/12/09 14:30
&lt;br&gt;&amp;gt;&amp;gt; De : &amp;quot;Christine Karman&amp;quot; 
&lt;br&gt;&amp;gt;&amp;gt; A : &amp;quot;HttpClient User Discussion&amp;quot; 
&lt;br&gt;&amp;gt;&amp;gt; Copie à : 
&lt;br&gt;&amp;gt;&amp;gt; Objet : Re: Using multiple IP addresses
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Tony Poppleton wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I have two IP addresses on my computer, and would like to send out requests on both using a single Java application and HttpClient. Is this possible? I.e. one request sent out from the first IP, and the next request sent out from the second IP.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Do you want one instance of HttpClient to do so, and one connectionManager?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; dagdag
&lt;br&gt;&amp;gt;&amp;gt; Christine
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Tony
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; -- 
&lt;br&gt;&amp;gt;&amp;gt; dagdag is just a two-character rotation of byebye.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818129&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818129&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; Orange vous informe que cet e-mail a ete controle par l'anti-virus mail. 
&lt;br&gt;&amp;gt;&amp;gt; Aucun virus connu a ce jour par nos services n'a ete detecte.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818129&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818129&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Using-multiple-IP-addresses-tp26786206p26818129.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26818079</id>
	<title>Re: Kerberos proxy authentication issue</title>
	<published>2009-12-16T12:40:50Z</published>
	<updated>2009-12-16T12:40:50Z</updated>
	<author>
		<name>olegk</name>
	</author>
	<content type="html">Sebastiaan van Erk wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks for adding this. I'm currently a bit stuck on the caching of the 
&lt;br&gt;&amp;gt; tickets, which really needs to be fixed, but it looks like I'll have to 
&lt;br&gt;&amp;gt; dive into protocols/APIs deeply (JAAS, Java GSSAPI, SPNEGO) to figure it 
&lt;br&gt;&amp;gt; out.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; There is however one thing about the SPENGO authentication protocol that 
&lt;br&gt;&amp;gt; does not yet fit nicely into the httpclient API, namely, if you look at 
&lt;br&gt;&amp;gt; the diagram:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://issues.apache.org/jira/secure/attachment/12419383/SPNEGO_cropped.png&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/secure/attachment/12419383/SPNEGO_cropped.png&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; What you see is a series of requests back and forth, with the last 
&lt;br&gt;&amp;gt; response containing the final negotiation token NOT having a response 
&lt;br&gt;&amp;gt; code of 401. In the diagram it's a 200, but in my case (with the 
&lt;br&gt;&amp;gt; redirect), it was a 3xx. In any case, the token should go back into the 
&lt;br&gt;&amp;gt; authentication scheme.
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;This is somewhat similar to NTLM authentication, where the final 
&lt;br&gt;response code may also be 3xx, so HttpClient should be able to handler 
&lt;br&gt;such situations, worst case with some API extensions.
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; BTW, I quickly hacked a response inteceptor which would do this for me 
&lt;br&gt;&amp;gt; (it was a hack, because it just called authenticate() again with the 
&lt;br&gt;&amp;gt; token and a null HttpRequest (since you don't have a request in the 
&lt;br&gt;&amp;gt; response interceptor) and at least GSSAPI was able to complete the 
&lt;br&gt;&amp;gt; negotiation. I did this because I was hoping this would solve the ticket 
&lt;br&gt;&amp;gt; caching problem, i.e, hoping that the tickets would be &amp;quot;committed&amp;quot; if 
&lt;br&gt;&amp;gt; the negotiation completed, but unfortunately this was not the case.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I don't really know the authentication API should look to support this 
&lt;br&gt;&amp;gt; protocol... and it might in the end not really be necessary, except 
&lt;br&gt;&amp;gt; perhaps for mutual authentication.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I'm going to look into the SPNEGO/GSSAPI stuff now to fix the caching, 
&lt;br&gt;&amp;gt; so I'm still on this. I just wanted to keep you posted.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt; Sebastiaan
&lt;/div&gt;&lt;br&gt;Keep us posted on the progress.
&lt;br&gt;&lt;br&gt;Cheers
&lt;br&gt;&lt;br&gt;Oleg
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818079&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818079&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Kerberos-proxy-authentication-issue-tp26744415p26818079.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26797823</id>
	<title>Re: Using multiple IP addresses</title>
	<published>2009-12-15T08:44:30Z</published>
	<updated>2009-12-15T08:44:30Z</updated>
	<author>
		<name>Tony Poppleton-2</name>
	</author>
	<content type="html">&lt;br&gt;Hi Christine,
&lt;br&gt;&lt;br&gt;I am just looking for the simplest solution.  Using one http client and one connection manager would be nice, although not necessary if that is overcomplicated.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Tony
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Message du 15/12/09 14:30
&lt;br&gt;&amp;gt; De : &amp;quot;Christine Karman&amp;quot; 
&lt;br&gt;&amp;gt; A : &amp;quot;HttpClient User Discussion&amp;quot; 
&lt;br&gt;&amp;gt; Copie à : 
&lt;br&gt;&amp;gt; Objet : Re: Using multiple IP addresses
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Tony Poppleton wrote:
&lt;br&gt;&amp;gt; &amp;gt; Hi,
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I have two IP addresses on my computer, and would like to send out requests on both using a single Java application and HttpClient. Is this possible? I.e. one request sent out from the first IP, and the next request sent out from the second IP.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; Do you want one instance of HttpClient to do so, and one connectionManager?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; dagdag
&lt;br&gt;&amp;gt; Christine
&lt;br&gt;&amp;gt; &amp;gt; Thanks,
&lt;br&gt;&amp;gt; &amp;gt; Tony
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; -- 
&lt;br&gt;&amp;gt; dagdag is just a two-character rotation of byebye.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26797823&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26797823&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt; Orange vous informe que cet e-mail a ete controle par l'anti-virus mail. 
&lt;br&gt;&amp;gt; Aucun virus connu a ce jour par nos services n'a ete detecte.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Using-multiple-IP-addresses-tp26786206p26797823.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26794823</id>
	<title>Re: Using multiple IP addresses</title>
	<published>2009-12-15T05:29:28Z</published>
	<updated>2009-12-15T05:29:28Z</updated>
	<author>
		<name>xtien</name>
	</author>
	<content type="html">Tony Poppleton wrote:
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have two IP addresses on my computer, and would like to send out requests on both using a single Java application and HttpClient. &amp;nbsp;Is this possible? &amp;nbsp;I.e. one request sent out from the first IP, and the next request sent out from the second IP.
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;Do you want one instance of HttpClient to do so, and one connectionManager?
&lt;br&gt;&lt;br&gt;dagdag
&lt;br&gt;Christine
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Tony
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;dagdag is just a two-character rotation of byebye.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26794823&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26794823&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Using-multiple-IP-addresses-tp26786206p26794823.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26786206</id>
	<title>Using multiple IP addresses</title>
	<published>2009-12-14T14:31:36Z</published>
	<updated>2009-12-14T14:31:36Z</updated>
	<author>
		<name>Tony Poppleton-2</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I have two IP addresses on my computer, and would like to send out requests on both using a single Java application and HttpClient.  Is this possible?  I.e. one request sent out from the first IP, and the next request sent out from the second IP.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Tony&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Using-multiple-IP-addresses-tp26786206p26786206.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26780017</id>
	<title>Re: Memory leak with non-keepalive SSL connection load test</title>
	<published>2009-12-14T07:49:01Z</published>
	<updated>2009-12-14T07:49:01Z</updated>
	<author>
		<name>Sam Berlin</name>
	</author>
	<content type="html">If IOSessions are disposed of properly, ByteBufferAllocater can become
&lt;br&gt;ByteBufferManager &amp; the ByteBuffers can be returned &amp; recycled/reused.
&lt;br&gt;&lt;br&gt;Sam
&lt;br&gt;&lt;br&gt;On Mon, Dec 14, 2009 at 10:20 AM, Oleg Kalnichevski &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26780017&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;olegk@...&lt;/a&gt;&amp;gt;wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Asankha C. Perera wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi Oleg
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Has anyone encountered this issue before? my immediate next step is to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; try on a 64bit OS version .. but I am curious to know how we could avoid
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; this problem
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Asankha,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I think the easiest fix to the problem should be avoiding direct
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; bytebuffers altogether. Feel free to go ahead and patch SSLIOSession in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; SVN trunk.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thanks for the reply, I still got the same issue with the 64 bit OS
&lt;br&gt;&amp;gt;&amp;gt; version too, so probably Ubuntu has something that causes the JVM to GC
&lt;br&gt;&amp;gt;&amp;gt; before its too late, which is not there in RHEL. As a temporary fix, I
&lt;br&gt;&amp;gt;&amp;gt; replaced the direct buffers with heap buffers which solved the problem,
&lt;br&gt;&amp;gt;&amp;gt; and I think it may indeed be the safer bet right now.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; thanks
&lt;br&gt;&amp;gt;&amp;gt; asankha
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; Asankha,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Actually I do not think this should be seen as a temporary fix. Direct
&lt;br&gt;&amp;gt; buffers should be used for objects with a relatively long life span. I/O
&lt;br&gt;&amp;gt; sessions may well be short lived. Alternatively, feel free to change
&lt;br&gt;&amp;gt; SSLIOsession to make use of ByteBufferAllocator, which would allow for
&lt;br&gt;&amp;gt; customizable allocation strategies.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Cheers
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Oleg
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26780017&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26780017&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Memory-leak-with-non-keepalive-SSL-connection-load-test-tp26769062p26780017.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26779484</id>
	<title>Re: Memory leak with non-keepalive SSL connection load test</title>
	<published>2009-12-14T07:20:52Z</published>
	<updated>2009-12-14T07:20:52Z</updated>
	<author>
		<name>olegk</name>
	</author>
	<content type="html">Asankha C. Perera wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Oleg
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Has anyone encountered this issue before? my immediate next step is to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; try on a 64bit OS version .. but I am curious to know how we could avoid
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; this problem
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt; Asankha,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I think the easiest fix to the problem should be avoiding direct
&lt;br&gt;&amp;gt;&amp;gt; bytebuffers altogether. Feel free to go ahead and patch SSLIOSession in
&lt;br&gt;&amp;gt;&amp;gt; SVN trunk.
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;gt; Thanks for the reply, I still got the same issue with the 64 bit OS
&lt;br&gt;&amp;gt; version too, so probably Ubuntu has something that causes the JVM to GC
&lt;br&gt;&amp;gt; before its too late, which is not there in RHEL. As a temporary fix, I
&lt;br&gt;&amp;gt; replaced the direct buffers with heap buffers which solved the problem,
&lt;br&gt;&amp;gt; and I think it may indeed be the safer bet right now.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; thanks
&lt;br&gt;&amp;gt; asankha
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;Asankha,
&lt;br&gt;&lt;br&gt;Actually I do not think this should be seen as a temporary fix. Direct 
&lt;br&gt;buffers should be used for objects with a relatively long life span. I/O 
&lt;br&gt;sessions may well be short lived. Alternatively, feel free to change 
&lt;br&gt;SSLIOsession to make use of ByteBufferAllocator, which would allow for 
&lt;br&gt;customizable allocation strategies.
&lt;br&gt;&lt;br&gt;Cheers
&lt;br&gt;&lt;br&gt;Oleg
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26779484&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26779484&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Memory-leak-with-non-keepalive-SSL-connection-load-test-tp26769062p26779484.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26777310</id>
	<title>Re: Kerberos proxy authentication issue</title>
	<published>2009-12-14T04:56:40Z</published>
	<updated>2009-12-14T04:56:40Z</updated>
	<author>
		<name>Sebastiaan van Erk</name>
	</author>
	<content type="html">Oleg Kalnichevski wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt; Oleg Kalnichevski wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Oleg Kalnichevski wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Oleg Kalnichevski wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks for your reply.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; There's a good chance I'm going to have to get this working, even 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; if it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; means I'm going to have to delve into this myself. I'll contact the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; original developer and see if he sees anything obvious, but in 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; any case,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; if I succeed in getting it working, I will happily contribute the 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; patches.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Cool. In my turn I will happily help with HttpClient specific stuff.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I got the proxy authentication working already. I even tested it 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; when both proxy auth and http auth are required and it works.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; There is just one small issue: I need the proxy host name to 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; generate the kerberos service name (HTTP/proxyhost@REALM). The 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; current NegotiateScheme code doesn't handle proxy auth at all and 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; always uses the target host name which it retrieves from the Host 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; header (is that the best way to get the target host?):
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (isStripPort()) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; init((request.getLastHeader(&amp;quot;Host&amp;quot;)).getValue().replaceAll(&amp;quot;:[0-9]+$&amp;quot;, 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;&amp;quot;) );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; } else {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; init( (request.getLastHeader(&amp;quot;Host&amp;quot;)).getValue());
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I changed the NegotiateScheme to extend AuthSchemeBase (like 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; NTLMScheme). Now I have access to the isProxy() method and can add 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the correct header (Proxy-Authorization or Authorization). However, 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; to determine the hostname I currently have this:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; String host;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (isProxy()) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; // FIXME this should actually be determined by the route planner?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; HttpHost proxy = 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ConnRouteParams.getDefaultProxy(request.getParams());
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = proxy.getHostName();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; } else {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = request.getLastHeader(&amp;quot;Host&amp;quot;).getValue();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (isStripPort()) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = host.replaceAll(&amp;quot;:[0-9]+$&amp;quot;, &amp;quot;&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; init(host);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I noticed a few frames up in DefaultRequestDirector.handleResponse 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the actual proxy host is known:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (this.proxyAuthHandler.isAuthenticationRequested(response, 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; context)) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; HttpHost proxy = route.getProxyHost();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; this.log.debug(&amp;quot;Proxy requested authentication&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; Map&amp;lt;String, Header&amp;gt; challenges = 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; this.proxyAuthHandler.getChallenges(response, context);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; try {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;processChallenges(challenges,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.proxyAuthState, this.proxyAuthHandler,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response, context);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (AuthenticationException ex) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; But this information is not available to me at the FIXME location. 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm also ignoring any forced route now, but it seems wrong to copy 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; paste the code from DefaultHttpRoutePlanner anyway, especially 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; since that's just the default implementation anyhow and could be 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; overridden.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Next thing I'll look into is why the redirect fails.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; This looks nasty. The usual way of obtaining contextual details in 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; HttpClient is by examining attributes of the HttpContext instance 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; associated with the request being executed. The trouble is that auth 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; schemes factories presently have no means of getting hold of the 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; HttpContext.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; One possibility of fixing it would be extending or replacing the 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; AuthSchemeFactory with something better.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; public interface BetterAuthSchemeFactory extends AuthSchemeFactory {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; AuthScheme newInstance(HttpContext context, HttpParams params);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; This is double but is far from trivial if 100% binary compatibility 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; with 4.0 is to be retained.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Feel free to go ahead and open a change request in JIRA for this issue.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Oleg
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Probably a better alternative would be something like that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; /**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;* This interface represents an extended &amp;nbsp;authentication scheme
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;* that requires access to {@link HttpContext} in order to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;* generate an authorization string.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;*
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;* @since 4.1
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; public interface ContextAwareAuthScheme extends AuthScheme {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Produces an authorization string for the given set of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* {@link Credentials}.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param credentials The set of credentials to be used for 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; athentication
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param request The request being authenticated
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param context HTTP context
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @throws AuthenticationException if authorization string cannot
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp; be generated due to an authentication failure
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the authorization string
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; Header authenticate(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Credentials credentials,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HttpRequest request,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HttpContext context) throws AuthenticationException;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Oleg
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The ContextAwareAuthScheme looks perfect for the job.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Should I open a JIRA issue for it?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Yes, you should
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; How will binary compatibility be maintained? An instanceof check at 
&lt;br&gt;&amp;gt;&amp;gt; the location where AuthScheme is used at the moment?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Yep
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Oleg
&lt;/div&gt;&lt;/div&gt;Hi Oleg,
&lt;br&gt;&lt;br&gt;Thanks for adding this. I'm currently a bit stuck on the caching of the 
&lt;br&gt;tickets, which really needs to be fixed, but it looks like I'll have to 
&lt;br&gt;dive into protocols/APIs deeply (JAAS, Java GSSAPI, SPNEGO) to figure it 
&lt;br&gt;out.
&lt;br&gt;&lt;br&gt;There is however one thing about the SPENGO authentication protocol that 
&lt;br&gt;does not yet fit nicely into the httpclient API, namely, if you look at 
&lt;br&gt;the diagram:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://issues.apache.org/jira/secure/attachment/12419383/SPNEGO_cropped.png&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/secure/attachment/12419383/SPNEGO_cropped.png&lt;/a&gt;&lt;br&gt;&lt;br&gt;What you see is a series of requests back and forth, with the last 
&lt;br&gt;response containing the final negotiation token NOT having a response 
&lt;br&gt;code of 401. In the diagram it's a 200, but in my case (with the 
&lt;br&gt;redirect), it was a 3xx. In any case, the token should go back into the 
&lt;br&gt;authentication scheme.
&lt;br&gt;&lt;br&gt;BTW, I quickly hacked a response inteceptor which would do this for me 
&lt;br&gt;(it was a hack, because it just called authenticate() again with the 
&lt;br&gt;token and a null HttpRequest (since you don't have a request in the 
&lt;br&gt;response interceptor) and at least GSSAPI was able to complete the 
&lt;br&gt;negotiation. I did this because I was hoping this would solve the ticket 
&lt;br&gt;caching problem, i.e, hoping that the tickets would be &amp;quot;committed&amp;quot; if 
&lt;br&gt;the negotiation completed, but unfortunately this was not the case.
&lt;br&gt;&lt;br&gt;I don't really know the authentication API should look to support this 
&lt;br&gt;protocol... and it might in the end not really be necessary, except 
&lt;br&gt;perhaps for mutual authentication.
&lt;br&gt;&lt;br&gt;I'm going to look into the SPNEGO/GSSAPI stuff now to fix the caching, 
&lt;br&gt;so I'm still on this. I just wanted to keep you posted.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Sebastiaan
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;smime.p7s&lt;/strong&gt; (4K) &lt;a href=&quot;http://old.nabble.com/attachment/26777310/0/smime.p7s&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Kerberos-proxy-authentication-issue-tp26744415p26777310.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26776877</id>
	<title>Re: Memory leak with non-keepalive SSL connection load test</title>
	<published>2009-12-14T04:16:02Z</published>
	<updated>2009-12-14T04:16:02Z</updated>
	<author>
		<name>Ortwin Glück</name>
	</author>
	<content type="html">As I see it direct buffers are allocated using glibc functions. Could be the
&lt;br&gt;glibc version that causes the different behaviour.
&lt;br&gt;&lt;br&gt;On 14.12.2009 12:54, Asankha C. Perera wrote:
&lt;br&gt;&amp;gt; Thanks for the reply, I still got the same issue with the 64 bit OS
&lt;br&gt;&amp;gt; version too, so probably Ubuntu has something that causes the JVM to GC
&lt;br&gt;&amp;gt; before its too late, which is not there in RHEL. As a temporary fix, I
&lt;br&gt;&amp;gt; replaced the direct buffers with heap buffers which solved the problem,
&lt;br&gt;&amp;gt; and I think it may indeed be the safer bet right now.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; thanks
&lt;br&gt;&amp;gt; asankha
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26776877&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26776877&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Memory-leak-with-non-keepalive-SSL-connection-load-test-tp26769062p26776877.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26776616</id>
	<title>Re: Memory leak with non-keepalive SSL connection load test</title>
	<published>2009-12-14T03:54:12Z</published>
	<updated>2009-12-14T03:54:12Z</updated>
	<author>
		<name>Asankha C. Perera</name>
	</author>
	<content type="html">Hi Oleg
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; Has anyone encountered this issue before? my immediate next step is to
&lt;br&gt;&amp;gt;&amp;gt; try on a 64bit OS version .. but I am curious to know how we could avoid
&lt;br&gt;&amp;gt;&amp;gt; this problem
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; Asankha,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I think the easiest fix to the problem should be avoiding direct
&lt;br&gt;&amp;gt; bytebuffers altogether. Feel free to go ahead and patch SSLIOSession in
&lt;br&gt;&amp;gt; SVN trunk.
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;/div&gt;Thanks for the reply, I still got the same issue with the 64 bit OS
&lt;br&gt;version too, so probably Ubuntu has something that causes the JVM to GC
&lt;br&gt;before its too late, which is not there in RHEL. As a temporary fix, I
&lt;br&gt;replaced the direct buffers with heap buffers which solved the problem,
&lt;br&gt;and I think it may indeed be the safer bet right now.
&lt;br&gt;&lt;br&gt;thanks
&lt;br&gt;asankha
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26776616&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26776616&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Memory-leak-with-non-keepalive-SSL-connection-load-test-tp26769062p26776616.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26775774</id>
	<title>[jira] Closed: (HTTPCLIENT-755) Use of java.net.URI.resolve() is buggy</title>
	<published>2009-12-14T02:34:18Z</published>
	<updated>2009-12-14T02:34:18Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-755?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-755?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Johannes Koch closed HTTPCLIENT-755.
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Use of java.net.URI.resolve() is buggy
&lt;br&gt;&amp;gt; --------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: HTTPCLIENT-755
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-755&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-755&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: HttpComponents HttpClient
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Johannes Koch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 4.0 Alpha 4
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: URIresolve_patch_20080228.txt
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The use of java.net.URI.resolve() is buggy (see &amp;lt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4708535&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4708535&lt;/a&gt;&amp;gt;). Affected class: org.apache.http.impl.client.DefaultRedirectHandler.
&lt;br&gt;&amp;gt; Proposed solution: Create a resolve(URI, String) method in o.a.h.client.utils.URLUtils.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775774&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775774&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28HTTPCLIENT-755%29-Use-of-java.net.URI.resolve%28%29-is-buggy-tp15737650p26775774.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26775775</id>
	<title>[jira] Closed: (HTTPCLIENT-705) Handle URIs with path component null</title>
	<published>2009-12-14T02:34:18Z</published>
	<updated>2009-12-14T02:34:18Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-705?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-705?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Johannes Koch closed HTTPCLIENT-705.
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thanks
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Handle URIs with path component null
&lt;br&gt;&amp;gt; ------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: HTTPCLIENT-705
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-705&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-705&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: HttpComponents HttpClient
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Johannes Koch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 4.0 Alpha 3
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; HttpClient does not handle URIs with path component null (e.g. &lt;a href=&quot;http://google.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://google.com&lt;/a&gt;) the same as path component '/'. This results e.g. in a ProtocolException &amp;quot;The server failed to respond with a valid HTTP response&amp;quot;.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775775&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775775&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Closed%3A-%28HTTPCLIENT-705%29-Handle-URIs-with-path-component-null-tp26775775p26775775.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26775776</id>
	<title>[jira] Closed: (HTTPCLIENT-758) Wrong method signatures in AbstractHttpClient</title>
	<published>2009-12-14T02:34:18Z</published>
	<updated>2009-12-14T02:34:18Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-758?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-758?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Johannes Koch closed HTTPCLIENT-758.
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Wrong method signatures in AbstractHttpClient
&lt;br&gt;&amp;gt; ---------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: HTTPCLIENT-758
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-758&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-758&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: HttpComponents HttpClient
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Johannes Koch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 4.0 Alpha 4
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: HTTPCLIENT-758_patch.txt
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The method signatures for removeRequestInterceptorByClass and removeResponseInterceptorByClass in AbstractHttpClient are wrong. Must be
&lt;br&gt;&amp;gt; public void removeRequestInterceptorByClass(Class&amp;lt;? extends
&lt;br&gt;&amp;gt; HttpRequestInterceptor&amp;gt; clazz);
&lt;br&gt;&amp;gt; and
&lt;br&gt;&amp;gt; public void removeResponseInterceptorByClass(Class&amp;lt;? extends
&lt;br&gt;&amp;gt; HttpRequestInterceptor&amp;gt; clazz);
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775776&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775776&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28HTTPCLIENT-758%29-Wrong-method-signatures-in-AbstractHttpClient-tp15957566p26775776.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26775777</id>
	<title>[jira] Closed: (HTTPCLIENT-861) URI reference resolution fails examples in RFC 3986</title>
	<published>2009-12-14T02:34:18Z</published>
	<updated>2009-12-14T02:34:18Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-861?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-861?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Johannes Koch closed HTTPCLIENT-861.
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; URI reference resolution fails examples in RFC 3986
&lt;br&gt;&amp;gt; ---------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: HTTPCLIENT-861
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-861&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-861&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: HttpComponents HttpClient
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: HttpClient
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 4.0 Beta 2
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Johannes Koch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 4.0 Final
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: HTTPCLIENT-861-patch.txt, TestURIUtils.java, TestURIUtils.java
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.http.client.utils.URIUtils.resolve(final URI baseURI, URI reference) fails to resolve some examples from RFC 3986 section 5.3 correctly. See TestCase.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775777&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775777&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28HTTPCLIENT-861%29-URI-reference-resolution-fails-examples-in-RFC-3986-tp24514544p26775777.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26775778</id>
	<title>[jira] Closed: (HTTPCLIENT-847) Handling of a buggy response to HEAD request</title>
	<published>2009-12-14T02:34:18Z</published>
	<updated>2009-12-14T02:34:18Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-847?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-847?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Johannes Koch closed HTTPCLIENT-847.
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Handling of a buggy response to HEAD request
&lt;br&gt;&amp;gt; --------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: HTTPCLIENT-847
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-847&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-847&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: HttpComponents HttpClient
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Question
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 4.0 Beta 2
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Java 1.5.0_14
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Johannes Koch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: TestHeadRequestWithBuggyServer.java
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I tried to make a HEAD request to some server and discovered, that the server seems to respond in some buggy way. The response is a 302 and contains an entity.
&lt;br&gt;&amp;gt; This makes HttpClient waiting and wainting and ... when redirecting is true.
&lt;br&gt;&amp;gt; What would be the preferred way to make HttpClient stop processing the response in this situation?
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775778&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775778&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28HTTPCLIENT-847%29-Handling-of-a-buggy-response-to-HEAD-request-tp23374850p26775778.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26775748</id>
	<title>[jira] Closed: (HTTPCLIENT-702) Compilation errors in DefaultResponseParser</title>
	<published>2009-12-14T02:32:18Z</published>
	<updated>2009-12-14T02:32:18Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Johannes Koch closed HTTPCLIENT-702.
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Compilation errors in DefaultResponseParser
&lt;br&gt;&amp;gt; -------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: HTTPCLIENT-702
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-702&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-702&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: HttpComponents HttpClient
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Johannes Koch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have two compilation errors in o.a.h.impl.conn.DefaultResponseParser:
&lt;br&gt;&amp;gt; 1. in 
&lt;br&gt;&amp;gt; &amp;nbsp; protected HttpMessage parseHead(
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; final SessionInputBuffer sessionBuffer) throws IOException, HttpException:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (lineParser.hasProtocolVersion(this.lineBuf, 0)) {
&lt;br&gt;&amp;gt; The method hasProtocolVersion(CharArrayBuffer, ParserCursor) in the type LineParser is not applicable for the arguments (CharArrayBuffer, int)
&lt;br&gt;&amp;gt; 2. in
&lt;br&gt;&amp;gt; &amp;nbsp; protected HttpMessage parseHead(
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; final SessionInputBuffer sessionBuffer) throws IOException, HttpException:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; StatusLine statusline = lineParser.parseStatusLine(this.lineBuf, 0, this.lineBuf.length());
&lt;br&gt;&amp;gt; The method parseStatusLine(CharArrayBuffer, ParserCursor) in the type LineParser is not applicable for the arguments (CharArrayBuffer, int, int)
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775748&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775748&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Closed%3A-%28HTTPCLIENT-702%29-Compilation-errors-in-DefaultResponseParser-tp26775748p26775748.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26775752</id>
	<title>[jira] Closed: (HTTPCLIENT-704) Exception not caugh in DefaultResponseParser</title>
	<published>2009-12-14T02:32:18Z</published>
	<updated>2009-12-14T02:32:18Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Johannes Koch closed HTTPCLIENT-704.
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Exception not caugh in DefaultResponseParser
&lt;br&gt;&amp;gt; --------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: HTTPCLIENT-704
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-704&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-704&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: HttpComponents HttpClient
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Johannes Koch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 4.0 Alpha 3
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The method hasProtocolVersion in o.a.h.message.BaseLineParser (httpcore-alpha6) throws an IndexOutOfBoundsException which is not caught by the parseHead method in the o.a.h.impl.conn.DefaultResponseParser.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775752&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775752&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Closed%3A-%28HTTPCLIENT-704%29-Exception-not-caugh-in-DefaultResponseParser-tp26775752p26775752.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26775753</id>
	<title>[jira] Closed: (HTTPCLIENT-703) Compilation error in RFC2617Scheme</title>
	<published>2009-12-14T02:32:18Z</published>
	<updated>2009-12-14T02:32:18Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Johannes Koch closed HTTPCLIENT-703.
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Compilation error in RFC2617Scheme
&lt;br&gt;&amp;gt; ----------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: HTTPCLIENT-703
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-703&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-703&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: HttpComponents HttpClient
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Johannes Koch
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have a compilation error in o.a.h.impl.auth.RFC2617Scheme:
&lt;br&gt;&amp;gt; in
&lt;br&gt;&amp;gt; &amp;nbsp; public void processChallenge(final Header header) throws MalformedChallengeException:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HeaderElement[] elements = BasicHeaderValueParser.DEFAULT.parseElements(buffer, pos, buffer.length());
&lt;br&gt;&amp;gt; The method parseElements(CharArrayBuffer, ParserCursor) in the type BasicHeaderValueParser is not applicable for the arguments (CharArrayBuffer, int, int)
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775753&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26775753&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Closed%3A-%28HTTPCLIENT-703%29-Compilation-error-in-RFC2617Scheme-tp26775753p26775753.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26774872</id>
	<title>Re: Memory leak with non-keepalive SSL connection load test</title>
	<published>2009-12-14T01:13:50Z</published>
	<updated>2009-12-14T01:13:50Z</updated>
	<author>
		<name>olegk</name>
	</author>
	<content type="html">On Mon, 2009-12-14 at 01:15 +0530, Asankha C. Perera wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi All
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I've encountered a strange problem from a Synapse user using RHEL 32 bit
&lt;br&gt;&amp;gt; system, where a load test of non-keepalive SSL connections causes the
&lt;br&gt;&amp;gt; process to leak memory and ultimately crash. This does not happen on
&lt;br&gt;&amp;gt; Ubuntu which I use by default, and I had to run a CentOS instance on EC2
&lt;br&gt;&amp;gt; to reproduce and see this problem happening. The JDK I used was the
&lt;br&gt;&amp;gt; latest 1.6.17 - but I came across the links [1] and [2] from the past
&lt;br&gt;&amp;gt; which seems to indicate the problem
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The problem seems to be due to the four direct byte buffers allocated
&lt;br&gt;&amp;gt; per each SSL connection, and possibly because the JVM does not GC since
&lt;br&gt;&amp;gt; the byte buffers are allocated outside of it. The memory leak is visible
&lt;br&gt;&amp;gt; to vmstat by rapidly declining free memory on the system, but not
&lt;br&gt;&amp;gt; visible on the heap memory usage. The stack trace before the crash I got
&lt;br&gt;&amp;gt; was:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Exception in thread &amp;quot;https-Listener I/O dispatcher-2&amp;quot;
&lt;br&gt;&amp;gt; java.lang.OutOfMemoryError: Direct buffer memory
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.nio.Bits.reserveMemory(Bits.java:633)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.nio.DirectByteBuffer.&amp;lt;init&amp;gt;(DirectByteBuffer.java:95)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:288)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at
&lt;br&gt;&amp;gt; org.apache.http.impl.nio.reactor.SSLIOSession.&amp;lt;init&amp;gt;(SSLIOSession.java:113)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at
&lt;br&gt;&amp;gt; org.apache.http.impl.nio.SSLServerIOEventDispatch.connected(SSLServerIOEventDispatch.java:110)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at
&lt;br&gt;&amp;gt; org.apache.http.impl.nio.reactor.BaseIOReactor.keyCreated(BaseIOReactor.java:182)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at
&lt;br&gt;&amp;gt; org.apache.http.impl.nio.reactor.AbstractIOReactor.processNewChannels(AbstractIOReactor.java:246)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at
&lt;br&gt;&amp;gt; org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:153)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at
&lt;br&gt;&amp;gt; org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:70)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at
&lt;br&gt;&amp;gt; org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:318)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.lang.Thread.run(Thread.java:619)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Has anyone encountered this issue before? my immediate next step is to
&lt;br&gt;&amp;gt; try on a 64bit OS version .. but I am curious to know how we could avoid
&lt;br&gt;&amp;gt; this problem
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;Asankha,
&lt;br&gt;&lt;br&gt;I think the easiest fix to the problem should be avoiding direct
&lt;br&gt;bytebuffers altogether. Feel free to go ahead and patch SSLIOSession in
&lt;br&gt;SVN trunk.
&lt;br&gt;&lt;br&gt;Cheers
&lt;br&gt;&lt;br&gt;Oleg
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; cheers
&lt;br&gt;&amp;gt; asankha
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; [1] &lt;a href=&quot;http://lists.apple.com/archives/Java-dev/2006/Feb/msg00059.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.apple.com/archives/Java-dev/2006/Feb/msg00059.html&lt;/a&gt;&lt;br&gt;&amp;gt; [2] &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5092131&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5092131&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26774872&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26774872&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26774872&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26774872&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Memory-leak-with-non-keepalive-SSL-connection-load-test-tp26769062p26774872.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26769062</id>
	<title>Memory leak with non-keepalive SSL connection load test</title>
	<published>2009-12-13T11:45:37Z</published>
	<updated>2009-12-13T11:45:37Z</updated>
	<author>
		<name>Asankha C. Perera</name>
	</author>
	<content type="html">Hi All
&lt;br&gt;&lt;br&gt;I've encountered a strange problem from a Synapse user using RHEL 32 bit
&lt;br&gt;system, where a load test of non-keepalive SSL connections causes the
&lt;br&gt;process to leak memory and ultimately crash. This does not happen on
&lt;br&gt;Ubuntu which I use by default, and I had to run a CentOS instance on EC2
&lt;br&gt;to reproduce and see this problem happening. The JDK I used was the
&lt;br&gt;latest 1.6.17 - but I came across the links [1] and [2] from the past
&lt;br&gt;which seems to indicate the problem
&lt;br&gt;&lt;br&gt;The problem seems to be due to the four direct byte buffers allocated
&lt;br&gt;per each SSL connection, and possibly because the JVM does not GC since
&lt;br&gt;the byte buffers are allocated outside of it. The memory leak is visible
&lt;br&gt;to vmstat by rapidly declining free memory on the system, but not
&lt;br&gt;visible on the heap memory usage. The stack trace before the crash I got
&lt;br&gt;was:
&lt;br&gt;&lt;br&gt;Exception in thread &amp;quot;https-Listener I/O dispatcher-2&amp;quot;
&lt;br&gt;java.lang.OutOfMemoryError: Direct buffer memory
&lt;br&gt;&amp;nbsp; &amp;nbsp; at java.nio.Bits.reserveMemory(Bits.java:633)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at java.nio.DirectByteBuffer.&amp;lt;init&amp;gt;(DirectByteBuffer.java:95)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:288)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at
&lt;br&gt;org.apache.http.impl.nio.reactor.SSLIOSession.&amp;lt;init&amp;gt;(SSLIOSession.java:113)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at
&lt;br&gt;org.apache.http.impl.nio.SSLServerIOEventDispatch.connected(SSLServerIOEventDispatch.java:110)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at
&lt;br&gt;org.apache.http.impl.nio.reactor.BaseIOReactor.keyCreated(BaseIOReactor.java:182)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at
&lt;br&gt;org.apache.http.impl.nio.reactor.AbstractIOReactor.processNewChannels(AbstractIOReactor.java:246)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at
&lt;br&gt;org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:153)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at
&lt;br&gt;org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:70)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at
&lt;br&gt;org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:318)
&lt;br&gt;&amp;nbsp; &amp;nbsp; at java.lang.Thread.run(Thread.java:619)
&lt;br&gt;&lt;br&gt;Has anyone encountered this issue before? my immediate next step is to
&lt;br&gt;try on a 64bit OS version .. but I am curious to know how we could avoid
&lt;br&gt;this problem
&lt;br&gt;&lt;br&gt;cheers
&lt;br&gt;asankha
&lt;br&gt;&lt;br&gt;[1] &lt;a href=&quot;http://lists.apple.com/archives/Java-dev/2006/Feb/msg00059.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.apple.com/archives/Java-dev/2006/Feb/msg00059.html&lt;/a&gt;&lt;br&gt;[2] &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5092131&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5092131&lt;/a&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26769062&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26769062&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Memory-leak-with-non-keepalive-SSL-connection-load-test-tp26769062p26769062.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26761211</id>
	<title>[jira] Commented: (HTTPCLIENT-876) Calling httpClient.execute(post) on a shared server causes security error (WRITE not allowed to protected area on disk)</title>
	<published>2009-12-12T13:17:18Z</published>
	<updated>2009-12-12T13:17:18Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12789793#action_12789793&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12789793#action_12789793&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Kiran Kumar commented on HTTPCLIENT-876:
&lt;br&gt;----------------------------------------
&lt;br&gt;&lt;br&gt;Hi Cliff,
&lt;br&gt;&lt;br&gt;Were you able to set up connection pooling on your Godaddy hosting environment using context.xml ? I have been trying this for around 10 days , but no luck . My environment Linux Shared Hosting with java supported
&lt;br&gt;&lt;br&gt;My directory structure
&lt;br&gt;/WEB-INF/web.xml
&lt;br&gt;/META-INF/context.xml
&lt;br&gt;&lt;br&gt;what I tried
&lt;br&gt;&lt;br&gt;1) Copied manually context.xml file under /META-INF , this didn't work
&lt;br&gt;2) Created war file and deployed under root directory even this not helped me 
&lt;br&gt;3) context file parameters 
&lt;br&gt;&amp;lt;Context path=&amp;quot;/&amp;quot; docBase=&amp;quot;&amp;quot; 
&lt;br&gt;&lt;br&gt;since I am copying under root folder , not sure with what names it creates under conf\Catalina\localhost .
&lt;br&gt;&lt;br&gt;Could you please help me ? ( Searching internet , talking to godaddy and trying to explain them the problem , almost stopped all my work)
&lt;br&gt;&lt;br&gt;Thanks for your help
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Calling httpClient.execute(post) on a shared server causes security error (WRITE not allowed to protected area on disk)
&lt;br&gt;&amp;gt; -----------------------------------------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: HTTPCLIENT-876
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-876&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-876&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: HttpComponents HttpClient
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: HttpClient
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 4.0 Final
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Java 5.0, Tomcat
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Clifford
&lt;br&gt;&amp;gt; &amp;nbsp; Original Estimate: 4h
&lt;br&gt;&amp;gt; &amp;nbsp;Remaining Estimate: 4h
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I run my JSP modules on a shared server at GoDaddy.com, one of the largest hosting companies in the USA. &amp;nbsp;They have strict security on the servers which disallows writing to any disk files unless they are in the /temp directory.
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; When I first tried to execute a module I wrote using HttpClient, I got a security write-not-allowed error. &amp;nbsp;I looked at the stack trace and found out that org.apache.http.impl.client.DefaultHttpClient.java (at source line 197) calls org.apache.http.util.VersionInfo method loadVersionInfo, and that class (at source line 248) tries to do a FILE WRITE after not finding a property file containing the version#. &amp;nbsp;That WRITE is disallowed by my hosting, thus causing my HttpClient call to fail. &amp;nbsp;I can provide more details if you like.
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; I worked around the problem by commenting out the call to loadVersionInfo and recompiling DefaultHttpClient, but MANY MANY programmers will run into this issue, so I would label it an urgent bug that needs to be fixed. &amp;nbsp;Suggestions for the fix could be 1) hard-code the version in a new final static variable of DefaultHttpClient, or 2) Write the Properties file containing the HttpClient version# to a directory within /temp.
&lt;br&gt;&amp;gt; The stack trace (transcribed from a printout) is:
&lt;br&gt;&amp;gt; java.security.AccessControlException: access denied (java.io.FilePermission /web/tomcat/work/hosting/dir.dotgreen.org/.../loader/META-INF write) at ... 5 levels of java.security.* then
&lt;br&gt;&amp;gt; java.io.File.mkdir
&lt;br&gt;&amp;gt; WebappClassLoader.findResourceInternal
&lt;br&gt;&amp;gt; WebappClassLoader.findResource
&lt;br&gt;&amp;gt; WebappClassLoader.getResourceAsStream
&lt;br&gt;&amp;gt; VersionInfo.loadVersionInfo (line 244)
&lt;br&gt;&amp;gt; DefaultHttpClient.createHttpParams (line 197)
&lt;br&gt;&amp;gt; AbstractHttpClient.getParams (line 293)
&lt;br&gt;&amp;gt; DefaultHttpClient.createClient (line 2)
&lt;br&gt;&amp;gt; AbstractHttpClient.getConnectionManager (line 312)
&lt;br&gt;&amp;gt; DefaultHttpClient.createHttpContext (line 254)
&lt;br&gt;&amp;gt; AbstractHttpClient.execute (line 618)
&lt;br&gt;&amp;gt; AbstractHttpClient.execute (line 576)
&lt;br&gt;&amp;gt; AbstractHttpClient.execute (line 554)
&lt;br&gt;&amp;gt; then a dozen JSP/catalina locations that are irrelevant
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26761211&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26761211&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28HTTPCLIENT-876%29-Calling-httpClient.execute%28post%29-on-a-shared-server-causes-security-error-%28WRITE-not-allowed-to-protected-area-on-disk%29-tp25373522p26761211.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26757958</id>
	<title>Re: How to read chunked response entity? (hc 4.0.1)</title>
	<published>2009-12-12T06:18:53Z</published>
	<updated>2009-12-12T06:18:53Z</updated>
	<author>
		<name>Florent Georges-3</name>
	</author>
	<content type="html">Sam Crawford wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; It's demonstrated right at the top of
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://hc.apache.org/httpcomponents-client/tutorial/html/fundamentals.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hc.apache.org/httpcomponents-client/tutorial/html/fundamentals.html&lt;/a&gt;&lt;br&gt;&amp;gt; - that will work for both chunked and non-chunked responses.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;quot;Chapter 1. Fundamentals&amp;quot; &amp;nbsp;Ouch! :-)
&lt;br&gt;&lt;br&gt;&amp;nbsp; If I am right, you mean just reading the content InputStream,
&lt;br&gt;regardless of the Transfer-Encoding. &amp;nbsp;Ahem, this is what I did,
&lt;br&gt;in a separate, reproducible, standalone main class, and it
&lt;br&gt;failed. &amp;nbsp;And now that I re-run this &amp;quot;reproducible&amp;quot; example, it
&lt;br&gt;works :-/ &amp;nbsp;Quite embarrassing...
&lt;br&gt;&lt;br&gt;&amp;nbsp; Sorry for the noise, and thanks for the reminder of the
&lt;br&gt;tutorial! &amp;nbsp;Regards,
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Florent Georges
&lt;br&gt;&lt;a href=&quot;http://www..fgeorges.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www..fgeorges.org/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26757958&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26757958&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/How-to-read-chunked-response-entity--%28hc-4.0.1%29-tp26757546p26757958.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26757621</id>
	<title>Re: How to read chunked response entity? (hc 4.0.1)</title>
	<published>2009-12-12T05:33:52Z</published>
	<updated>2009-12-12T05:33:52Z</updated>
	<author>
		<name>Sam Crawford</name>
	</author>
	<content type="html">It's demonstrated right at the top of
&lt;br&gt;&lt;a href=&quot;http://hc.apache.org/httpcomponents-client/tutorial/html/fundamentals.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hc.apache.org/httpcomponents-client/tutorial/html/fundamentals.html&lt;/a&gt;&lt;br&gt;- that will work for both chunked and non-chunked responses.
&lt;br&gt;&lt;br&gt;As you probably know, you won't be able to call getContentLength() on
&lt;br&gt;a chunked response entity. You just have to read the InputStream until
&lt;br&gt;EOF.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;&lt;br&gt;Sam
&lt;br&gt;&lt;br&gt;&lt;br&gt;2009/12/12 Florent Georges &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26757621&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;lists@...&lt;/a&gt;&amp;gt;:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;  Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;  I send a GET request to a server which responds with a chunked
&lt;br&gt;&amp;gt; entity content.  I've looked in the documentation, but I only
&lt;br&gt;&amp;gt; found info about how to produce chunked content in a request, not
&lt;br&gt;&amp;gt; about how to consume chunked content from a response.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;  Did I miss something?  How can I retrieve the entity content?
&lt;br&gt;&amp;gt; I use HttpCore 4.0.1 and HttpClient 4.0.1.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;  Regards,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Florent Georges
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.fgeorges.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.fgeorges.org/&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26757621&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26757621&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26757621&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26757621&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/How-to-read-chunked-response-entity--%28hc-4.0.1%29-tp26757546p26757621.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26757546</id>
	<title>How to read chunked response entity? (hc 4.0.1)</title>
	<published>2009-12-12T05:21:45Z</published>
	<updated>2009-12-12T05:21:45Z</updated>
	<author>
		<name>Florent Georges-3</name>
	</author>
	<content type="html">&amp;nbsp; Hi,
&lt;br&gt;&lt;br&gt;&amp;nbsp; I send a GET request to a server which responds with a chunked
&lt;br&gt;entity content. &amp;nbsp;I've looked in the documentation, but I only
&lt;br&gt;found info about how to produce chunked content in a request, not
&lt;br&gt;about how to consume chunked content from a response.
&lt;br&gt;&lt;br&gt;&amp;nbsp; Did I miss something? &amp;nbsp;How can I retrieve the entity content?
&lt;br&gt;I use HttpCore 4.0.1 and HttpClient 4.0.1.
&lt;br&gt;&lt;br&gt;&amp;nbsp; Regards,
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Florent Georges
&lt;br&gt;&lt;a href=&quot;http://www.fgeorges.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.fgeorges.org/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26757546&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26757546&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/How-to-read-chunked-response-entity--%28hc-4.0.1%29-tp26757546p26757546.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26753169</id>
	<title>[jira] Updated: (HTTPCLIENT-901) Add a ContextAwareAuthScheme that has access to the HttpContext in the authenticate method</title>
	<published>2009-12-11T15:38:18Z</published>
	<updated>2009-12-11T15:38:18Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-901?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-901?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Oleg Kalnichevski updated HTTPCLIENT-901:
&lt;br&gt;-----------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Priority: Major &amp;nbsp;(was: Minor)
&lt;br&gt;&lt;br&gt;I added ContextAwareAuthScheme interface and tweaked RequestProxyAuthentication and RequestTargetAuthentication interceptors
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://svn.apache.org/viewvc?view=revision&amp;revision=889860&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?view=revision&amp;revision=889860&lt;/a&gt;&lt;br&gt;&lt;br&gt;It is all yours now.
&lt;br&gt;&lt;br&gt;Oleg
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Add a ContextAwareAuthScheme that has access to the HttpContext in the authenticate method
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: HTTPCLIENT-901
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-901&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-901&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: HttpComponents HttpClient
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Improvement
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: HttpAuth
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 4.1 Alpha1
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Sebastiaan van Erk
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The interface to be added would be:
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* This interface represents an extended &amp;nbsp;authentication scheme
&lt;br&gt;&amp;gt; &amp;nbsp;* that requires access to {@link HttpContext} in order to
&lt;br&gt;&amp;gt; &amp;nbsp;* generate an authorization string.
&lt;br&gt;&amp;gt; &amp;nbsp;*
&lt;br&gt;&amp;gt; &amp;nbsp;* @since 4.1
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public interface ContextAwareAuthScheme extends AuthScheme {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Produces an authorization string for the given set of
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* {@link Credentials}.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param credentials The set of credentials to be used for athentication
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param request The request being authenticated
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param context HTTP context
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @throws AuthenticationException if authorization string cannot
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp; be generated due to an authentication failure
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the authorization string
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Header authenticate(
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Credentials credentials,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HttpRequest request,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HttpContext context) throws AuthenticationException;
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; Binary compatibility can be maintained by doing an instanceof check at the location where AuthScheme.authenticate() is called at the moment, and calling the context aware version if available.
&lt;br&gt;&amp;gt; This interface is necessary for the NegotiateScheme authentication scheme because the service names for the authentication tickets are based on the hostname of the target host or proxy host, depending on whether it's normal or proxy authentication, and this information is only available from the HttpContext.
&lt;br&gt;&amp;gt; Without the HttpContext there is a workaround that works most of the time, which looks like this:
&lt;br&gt;&amp;gt; 	String host;
&lt;br&gt;&amp;gt; 	if (isProxy()) {
&lt;br&gt;&amp;gt; 		// FIXME this should actually taken from the HttpContext.
&lt;br&gt;&amp;gt; 		HttpHost proxy = ConnRouteParams.getDefaultProxy(request.getParams());
&lt;br&gt;&amp;gt; 		host = proxy.getHostName();
&lt;br&gt;&amp;gt; 	} else {
&lt;br&gt;&amp;gt; 		host = request.getLastHeader(&amp;quot;Host&amp;quot;).getValue();
&lt;br&gt;&amp;gt; 	}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26753169&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26753169&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28HTTPCLIENT-901%29-Add-a-ContextAwareAuthScheme-that-has-access-to-the-HttpContext-in-the-authenticate-method-tp26752921p26753169.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26752945</id>
	<title>Re: Kerberos proxy authentication issue</title>
	<published>2009-12-11T15:16:25Z</published>
	<updated>2009-12-11T15:16:25Z</updated>
	<author>
		<name>Sebastiaan van Erk</name>
	</author>
	<content type="html">Oleg Kalnichevski wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt; Oleg Kalnichevski wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks for your reply.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; There's a good chance I'm going to have to get this working, even if it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; means I'm going to have to delve into this myself. I'll contact the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; original developer and see if he sees anything obvious, but in any 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; case,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; if I succeed in getting it working, I will happily contribute the 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; patches.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hi Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Cool. In my turn I will happily help with HttpClient specific stuff.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I also found the reason why the redirect doesn't work. Basically it 
&lt;br&gt;&amp;gt;&amp;gt; comes down to the following:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The Kerberos auth can have a sequence of challenge/responses, that 
&lt;br&gt;&amp;gt;&amp;gt; keep resulting in 401 until the authentication succeeds. After each 
&lt;br&gt;&amp;gt;&amp;gt; challenge, the authenticate method in the same NegotiateScheme 
&lt;br&gt;&amp;gt;&amp;gt; instance is called, and it processes this new information. So far so 
&lt;br&gt;&amp;gt;&amp;gt; good.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; But when the request gets redirected to a new URL it basically means 
&lt;br&gt;&amp;gt;&amp;gt; the auth succeeded, and the NegotiateScheme instance is in 
&lt;br&gt;&amp;gt;&amp;gt; &amp;quot;ESTABLISHED&amp;quot; state for the OLD request.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Now the new request also gets a 401, and authenticate is called again, 
&lt;br&gt;&amp;gt;&amp;gt; however, it is called in the OLD instance, for the OLD request. 
&lt;br&gt;&amp;gt;&amp;gt; Basically a *new* instance from the scheme factory is necessary for 
&lt;br&gt;&amp;gt;&amp;gt; the new request.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I can think of two fixes:
&lt;br&gt;&amp;gt;&amp;gt; 1) if http client detects a redirect, it also throws out the old 
&lt;br&gt;&amp;gt;&amp;gt; AuthScheme and uses the auth scheme factory to generate a new one
&lt;br&gt;&amp;gt;&amp;gt; 2) the NegotiateScheme instance detects that the URL has changed by 
&lt;br&gt;&amp;gt;&amp;gt; inspecting the request, and resets its internal state.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I like solution number 1 better, but I'm not sure of what the 
&lt;br&gt;&amp;gt;&amp;gt; consequences might be for the other auth schemes. It seems to me that 
&lt;br&gt;&amp;gt;&amp;gt; it is the right approach though, no matter what the scheme; if you 
&lt;br&gt;&amp;gt;&amp;gt; follow a redirect, just create a new instance.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; hhhm. HttpClient should be doing exactly that
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://hc.apache.org/httpcomponents-client/httpclient/xref/org/apache/http/impl/client/DefaultRequestDirector.html#999&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hc.apache.org/httpcomponents-client/httpclient/xref/org/apache/http/impl/client/DefaultRequestDirector.html#999&lt;/a&gt;&amp;nbsp;
&lt;/div&gt;&lt;/div&gt;Ah, but this is only if the target host is different. The problem here 
&lt;br&gt;is that the target host is the same, but the it's a different resource, 
&lt;br&gt;so the negotiation must begin anew... (In my test, the redirect is from 
&lt;br&gt;&lt;a href=&quot;http://tunneltest.servoy.com/private&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://tunneltest.servoy.com/private&lt;/a&gt;&amp;nbsp;-&amp;gt; 
&lt;br&gt;&lt;a href=&quot;http://tunneltest.servoy.com/private/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://tunneltest.servoy.com/private/&lt;/a&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; Another thing I want to look into is if the auth header is reusable 
&lt;br&gt;&amp;gt;&amp;gt; for a specific period of time, so that you can do preemptive auth 
&lt;br&gt;&amp;gt;&amp;gt; instead of a challenge response cycle every time. Not sure if it's 
&lt;br&gt;&amp;gt;&amp;gt; possible though, because that would seen to be open to a replay 
&lt;br&gt;&amp;gt;&amp;gt; attack. On the other hand, one can generate the first token of the 
&lt;br&gt;&amp;gt;&amp;gt; negotiation preemptively I think, assuming the first challenge from 
&lt;br&gt;&amp;gt;&amp;gt; the server is empty.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Take a look at how preemptive Digest auth works in 4.1. It might be 
&lt;br&gt;&amp;gt; similar to what you want:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveDigestAuthentication.java&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveDigestAuthentication.java&lt;/a&gt;&amp;nbsp;
&lt;/div&gt;&lt;/div&gt;Thanks for the tip. Will look at it right after I fix the ticket caching 
&lt;br&gt;issue.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Sebastiaan
&lt;br&gt;&lt;br&gt;&amp;gt; Oleg
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26752945&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26752945&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;smime.p7s&lt;/strong&gt; (4K) &lt;a href=&quot;http://old.nabble.com/attachment/26752945/0/smime.p7s&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Kerberos-proxy-authentication-issue-tp26744415p26752945.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26752921</id>
	<title>[jira] Created: (HTTPCLIENT-901) Add a ContextAwareAuthScheme that has access to the HttpContext in the authenticate method</title>
	<published>2009-12-11T15:14:18Z</published>
	<updated>2009-12-11T15:14:18Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">Add a ContextAwareAuthScheme that has access to the HttpContext in the authenticate method
&lt;br&gt;------------------------------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: HTTPCLIENT-901
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-901&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-901&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: HttpComponents HttpClient
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Improvement
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: HttpAuth
&lt;br&gt;&amp;nbsp; &amp;nbsp; Affects Versions: 4.1 Alpha1
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Sebastiaan van Erk
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: Minor
&lt;br&gt;&lt;br&gt;&lt;br&gt;The interface to be added would be:
&lt;br&gt;&lt;br&gt;/**
&lt;br&gt;&amp;nbsp;* This interface represents an extended &amp;nbsp;authentication scheme
&lt;br&gt;&amp;nbsp;* that requires access to {@link HttpContext} in order to
&lt;br&gt;&amp;nbsp;* generate an authorization string.
&lt;br&gt;&amp;nbsp;*
&lt;br&gt;&amp;nbsp;* @since 4.1
&lt;br&gt;&amp;nbsp;*/
&lt;br&gt;&lt;br&gt;public interface ContextAwareAuthScheme extends AuthScheme {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Produces an authorization string for the given set of
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* {@link Credentials}.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param credentials The set of credentials to be used for athentication
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param request The request being authenticated
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param context HTTP context
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @throws AuthenticationException if authorization string cannot
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp; be generated due to an authentication failure
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the authorization string
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;nbsp; &amp;nbsp; Header authenticate(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Credentials credentials,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HttpRequest request,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HttpContext context) throws AuthenticationException;
&lt;br&gt;&lt;br&gt;}
&lt;br&gt;&lt;br&gt;Binary compatibility can be maintained by doing an instanceof check at the location where AuthScheme.authenticate() is called at the moment, and calling the context aware version if available.
&lt;br&gt;&lt;br&gt;This interface is necessary for the NegotiateScheme authentication scheme because the service names for the authentication tickets are based on the hostname of the target host or proxy host, depending on whether it's normal or proxy authentication, and this information is only available from the HttpContext.
&lt;br&gt;&lt;br&gt;Without the HttpContext there is a workaround that works most of the time, which looks like this:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String host;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (isProxy()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // FIXME this should actually taken from the HttpContext.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HttpHost proxy = ConnRouteParams.getDefaultProxy(request.getParams());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; host = proxy.getHostName();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; host = request.getLastHeader(&amp;quot;Host&amp;quot;).getValue();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26752921&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26752921&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpComponents-Dev-f20179.html&quot; embed=&quot;fixTarget[20179]&quot; target=&quot;_top&quot; &gt;HttpComponents-Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28HTTPCLIENT-901%29-Add-a-ContextAwareAuthScheme-that-has-access-to-the-HttpContext-in-the-authenticate-method-tp26752921p26752921.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26752910</id>
	<title>Re: Kerberos proxy authentication issue</title>
	<published>2009-12-11T15:13:25Z</published>
	<updated>2009-12-11T15:13:25Z</updated>
	<author>
		<name>Sebastiaan van Erk</name>
	</author>
	<content type="html">Oleg Kalnichevski wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt; Oleg Kalnichevski wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Oleg Kalnichevski wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Oleg Kalnichevski wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks for your reply.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; There's a good chance I'm going to have to get this working, even 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; if it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; means I'm going to have to delve into this myself. I'll contact the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; original developer and see if he sees anything obvious, but in 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; any case,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; if I succeed in getting it working, I will happily contribute the 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; patches.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Cool. In my turn I will happily help with HttpClient specific stuff.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I got the proxy authentication working already. I even tested it 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; when both proxy auth and http auth are required and it works.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; There is just one small issue: I need the proxy host name to 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; generate the kerberos service name (HTTP/proxyhost@REALM). The 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; current NegotiateScheme code doesn't handle proxy auth at all and 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; always uses the target host name which it retrieves from the Host 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; header (is that the best way to get the target host?):
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (isStripPort()) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; init((request.getLastHeader(&amp;quot;Host&amp;quot;)).getValue().replaceAll(&amp;quot;:[0-9]+$&amp;quot;, 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;&amp;quot;) );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; } else {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; init( (request.getLastHeader(&amp;quot;Host&amp;quot;)).getValue());
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I changed the NegotiateScheme to extend AuthSchemeBase (like 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; NTLMScheme). Now I have access to the isProxy() method and can add 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the correct header (Proxy-Authorization or Authorization). However, 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; to determine the hostname I currently have this:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; String host;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (isProxy()) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; // FIXME this should actually be determined by the route planner?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; HttpHost proxy = 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ConnRouteParams.getDefaultProxy(request.getParams());
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = proxy.getHostName();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; } else {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = request.getLastHeader(&amp;quot;Host&amp;quot;).getValue();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (isStripPort()) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = host.replaceAll(&amp;quot;:[0-9]+$&amp;quot;, &amp;quot;&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; init(host);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I noticed a few frames up in DefaultRequestDirector.handleResponse 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the actual proxy host is known:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (this.proxyAuthHandler.isAuthenticationRequested(response, 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; context)) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; HttpHost proxy = route.getProxyHost();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; this.log.debug(&amp;quot;Proxy requested authentication&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; Map&amp;lt;String, Header&amp;gt; challenges = 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; this.proxyAuthHandler.getChallenges(response, context);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; try {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;processChallenges(challenges,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.proxyAuthState, this.proxyAuthHandler,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response, context);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (AuthenticationException ex) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; But this information is not available to me at the FIXME location. 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm also ignoring any forced route now, but it seems wrong to copy 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; paste the code from DefaultHttpRoutePlanner anyway, especially 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; since that's just the default implementation anyhow and could be 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; overridden.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Next thing I'll look into is why the redirect fails.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; This looks nasty. The usual way of obtaining contextual details in 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; HttpClient is by examining attributes of the HttpContext instance 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; associated with the request being executed. The trouble is that auth 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; schemes factories presently have no means of getting hold of the 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; HttpContext.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; One possibility of fixing it would be extending or replacing the 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; AuthSchemeFactory with something better.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; public interface BetterAuthSchemeFactory extends AuthSchemeFactory {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; AuthScheme newInstance(HttpContext context, HttpParams params);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; This is double but is far from trivial if 100% binary compatibility 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; with 4.0 is to be retained.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Feel free to go ahead and open a change request in JIRA for this issue.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Oleg
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Probably a better alternative would be something like that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; /**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;* This interface represents an extended &amp;nbsp;authentication scheme
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;* that requires access to {@link HttpContext} in order to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;* generate an authorization string.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;*
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;* @since 4.1
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; public interface ContextAwareAuthScheme extends AuthScheme {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Produces an authorization string for the given set of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* {@link Credentials}.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param credentials The set of credentials to be used for 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; athentication
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param request The request being authenticated
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param context HTTP context
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @throws AuthenticationException if authorization string cannot
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp; be generated due to an authentication failure
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the authorization string
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; Header authenticate(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Credentials credentials,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HttpRequest request,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HttpContext context) throws AuthenticationException;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Oleg
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The ContextAwareAuthScheme looks perfect for the job.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Should I open a JIRA issue for it?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Yes, you should
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; How will binary compatibility be maintained? An instanceof check at 
&lt;br&gt;&amp;gt;&amp;gt; the location where AuthScheme is used at the moment?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Yep
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Oleg
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt;&amp;gt; Sebastiaan
&lt;/div&gt;&lt;/div&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/HTTPCLIENT-901&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/HTTPCLIENT-901&lt;/a&gt;&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Sebastiaan
&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;smime.p7s&lt;/strong&gt; (4K) &lt;a href=&quot;http://old.nabble.com/attachment/26752910/0/smime.p7s&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Kerberos-proxy-authentication-issue-tp26744415p26752910.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26752805</id>
	<title>Re: Kerberos proxy authentication issue</title>
	<published>2009-12-11T15:03:05Z</published>
	<updated>2009-12-11T15:03:05Z</updated>
	<author>
		<name>olegk</name>
	</author>
	<content type="html">Sebastiaan van Erk wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Oleg Kalnichevski wrote:
&lt;br&gt;&amp;gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Thanks for your reply.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; There's a good chance I'm going to have to get this working, even if it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; means I'm going to have to delve into this myself. I'll contact the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; original developer and see if he sees anything obvious, but in any case,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; if I succeed in getting it working, I will happily contribute the 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; patches.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Cool. In my turn I will happily help with HttpClient specific stuff.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I also found the reason why the redirect doesn't work. Basically it 
&lt;br&gt;&amp;gt; comes down to the following:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The Kerberos auth can have a sequence of challenge/responses, that keep 
&lt;br&gt;&amp;gt; resulting in 401 until the authentication succeeds. After each 
&lt;br&gt;&amp;gt; challenge, the authenticate method in the same NegotiateScheme instance 
&lt;br&gt;&amp;gt; is called, and it processes this new information. So far so good.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; But when the request gets redirected to a new URL it basically means the 
&lt;br&gt;&amp;gt; auth succeeded, and the NegotiateScheme instance is in &amp;quot;ESTABLISHED&amp;quot; 
&lt;br&gt;&amp;gt; state for the OLD request.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Now the new request also gets a 401, and authenticate is called again, 
&lt;br&gt;&amp;gt; however, it is called in the OLD instance, for the OLD request. 
&lt;br&gt;&amp;gt; Basically a *new* instance from the scheme factory is necessary for the 
&lt;br&gt;&amp;gt; new request.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I can think of two fixes:
&lt;br&gt;&amp;gt; 1) if http client detects a redirect, it also throws out the old 
&lt;br&gt;&amp;gt; AuthScheme and uses the auth scheme factory to generate a new one
&lt;br&gt;&amp;gt; 2) the NegotiateScheme instance detects that the URL has changed by 
&lt;br&gt;&amp;gt; inspecting the request, and resets its internal state.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I like solution number 1 better, but I'm not sure of what the 
&lt;br&gt;&amp;gt; consequences might be for the other auth schemes. It seems to me that it 
&lt;br&gt;&amp;gt; is the right approach though, no matter what the scheme; if you follow a 
&lt;br&gt;&amp;gt; redirect, just create a new instance.
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;hhhm. HttpClient should be doing exactly that
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://hc.apache.org/httpcomponents-client/httpclient/xref/org/apache/http/impl/client/DefaultRequestDirector.html#999&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hc.apache.org/httpcomponents-client/httpclient/xref/org/apache/http/impl/client/DefaultRequestDirector.html#999&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Another thing I want to look into is if the auth header is reusable for 
&lt;br&gt;&amp;gt; a specific period of time, so that you can do preemptive auth instead of 
&lt;br&gt;&amp;gt; a challenge response cycle every time. Not sure if it's possible though, 
&lt;br&gt;&amp;gt; because that would seen to be open to a replay attack. On the other 
&lt;br&gt;&amp;gt; hand, one can generate the first token of the negotiation preemptively I 
&lt;br&gt;&amp;gt; think, assuming the first challenge from the server is empty.
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;Take a look at how preemptive Digest auth works in 4.1. It might be 
&lt;br&gt;similar to what you want:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveDigestAuthentication.java&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveDigestAuthentication.java&lt;/a&gt;&lt;br&gt;&lt;br&gt;Oleg
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26752805&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26752805&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Kerberos-proxy-authentication-issue-tp26744415p26752805.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26752750</id>
	<title>Re: Kerberos proxy authentication issue</title>
	<published>2009-12-11T14:58:02Z</published>
	<updated>2009-12-11T14:58:02Z</updated>
	<author>
		<name>olegk</name>
	</author>
	<content type="html">Sebastiaan van Erk wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Oleg Kalnichevski wrote:
&lt;br&gt;&amp;gt;&amp;gt; Oleg Kalnichevski wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Oleg Kalnichevski wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks for your reply.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; There's a good chance I'm going to have to get this working, even 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; if it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; means I'm going to have to delve into this myself. I'll contact the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; original developer and see if he sees anything obvious, but in any 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; case,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; if I succeed in getting it working, I will happily contribute the 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; patches.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Cool. In my turn I will happily help with HttpClient specific stuff.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I got the proxy authentication working already. I even tested it 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; when both proxy auth and http auth are required and it works.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; There is just one small issue: I need the proxy host name to 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; generate the kerberos service name (HTTP/proxyhost@REALM). The 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; current NegotiateScheme code doesn't handle proxy auth at all and 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; always uses the target host name which it retrieves from the Host 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; header (is that the best way to get the target host?):
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (isStripPort()) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; init((request.getLastHeader(&amp;quot;Host&amp;quot;)).getValue().replaceAll(&amp;quot;:[0-9]+$&amp;quot;, 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;&amp;quot;) );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; } else {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; init( (request.getLastHeader(&amp;quot;Host&amp;quot;)).getValue());
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I changed the NegotiateScheme to extend AuthSchemeBase (like 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; NTLMScheme). Now I have access to the isProxy() method and can add 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the correct header (Proxy-Authorization or Authorization). However, 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; to determine the hostname I currently have this:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; String host;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (isProxy()) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; // FIXME this should actually be determined by the route planner?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; HttpHost proxy = 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ConnRouteParams.getDefaultProxy(request.getParams());
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = proxy.getHostName();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; } else {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = request.getLastHeader(&amp;quot;Host&amp;quot;).getValue();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (isStripPort()) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = host.replaceAll(&amp;quot;:[0-9]+$&amp;quot;, &amp;quot;&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; init(host);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I noticed a few frames up in DefaultRequestDirector.handleResponse 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the actual proxy host is known:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (this.proxyAuthHandler.isAuthenticationRequested(response, 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; context)) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; HttpHost proxy = route.getProxyHost();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; this.log.debug(&amp;quot;Proxy requested authentication&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; Map&amp;lt;String, Header&amp;gt; challenges = 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; this.proxyAuthHandler.getChallenges(response, context);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; try {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;processChallenges(challenges,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.proxyAuthState, this.proxyAuthHandler,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response, context);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (AuthenticationException ex) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; But this information is not available to me at the FIXME location. 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm also ignoring any forced route now, but it seems wrong to copy 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; paste the code from DefaultHttpRoutePlanner anyway, especially since 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; that's just the default implementation anyhow and could be overridden.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Next thing I'll look into is why the redirect fails.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hi Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; This looks nasty. The usual way of obtaining contextual details in 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; HttpClient is by examining attributes of the HttpContext instance 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; associated with the request being executed. The trouble is that auth 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; schemes factories presently have no means of getting hold of the 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; HttpContext.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; One possibility of fixing it would be extending or replacing the 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; AuthSchemeFactory with something better.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; public interface BetterAuthSchemeFactory extends AuthSchemeFactory {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; AuthScheme newInstance(HttpContext context, HttpParams params);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; This is double but is far from trivial if 100% binary compatibility 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; with 4.0 is to be retained.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Feel free to go ahead and open a change request in JIRA for this issue.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Oleg
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Probably a better alternative would be something like that
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------
&lt;br&gt;&amp;gt;&amp;gt; /**
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;* This interface represents an extended &amp;nbsp;authentication scheme
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;* that requires access to {@link HttpContext} in order to
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;* generate an authorization string.
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;*
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;* @since 4.1
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; public interface ContextAwareAuthScheme extends AuthScheme {
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Produces an authorization string for the given set of
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* {@link Credentials}.
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param credentials The set of credentials to be used for 
&lt;br&gt;&amp;gt;&amp;gt; athentication
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param request The request being authenticated
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param context HTTP context
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @throws AuthenticationException if authorization string cannot
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp; be generated due to an authentication failure
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the authorization string
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; Header authenticate(
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Credentials credentials,
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HttpRequest request,
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HttpContext context) throws AuthenticationException;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Oleg
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The ContextAwareAuthScheme looks perfect for the job.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Should I open a JIRA issue for it?
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;Yes, you should
&lt;br&gt;&lt;br&gt;&amp;gt; How will binary compatibility be maintained? An instanceof check at the 
&lt;br&gt;&amp;gt; location where AuthScheme is used at the moment?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&lt;br&gt;Yep
&lt;br&gt;&lt;br&gt;Oleg
&lt;br&gt;&lt;br&gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt; Sebastiaan
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26752750&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26752750&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26752750&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26752750&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Kerberos-proxy-authentication-issue-tp26744415p26752750.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26752734</id>
	<title>Re: Kerberos proxy authentication issue</title>
	<published>2009-12-11T14:56:39Z</published>
	<updated>2009-12-11T14:56:39Z</updated>
	<author>
		<name>Sebastiaan van Erk</name>
	</author>
	<content type="html">Oleg Kalnichevski wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Oleg Kalnichevski wrote:
&lt;br&gt;&amp;gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Oleg Kalnichevski wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks for your reply.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; There's a good chance I'm going to have to get this working, even 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; if it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; means I'm going to have to delve into this myself. I'll contact the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; original developer and see if he sees anything obvious, but in any 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; case,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; if I succeed in getting it working, I will happily contribute the 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; patches.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Cool. In my turn I will happily help with HttpClient specific stuff.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I got the proxy authentication working already. I even tested it when 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; both proxy auth and http auth are required and it works.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; There is just one small issue: I need the proxy host name to generate 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the kerberos service name (HTTP/proxyhost@REALM). The current 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; NegotiateScheme code doesn't handle proxy auth at all and always uses 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the target host name which it retrieves from the Host header (is that 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the best way to get the target host?):
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (isStripPort()) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; init((request.getLastHeader(&amp;quot;Host&amp;quot;)).getValue().replaceAll(&amp;quot;:[0-9]+$&amp;quot;, 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;&amp;quot;) );
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; } else {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; init( (request.getLastHeader(&amp;quot;Host&amp;quot;)).getValue());
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I changed the NegotiateScheme to extend AuthSchemeBase (like 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; NTLMScheme). Now I have access to the isProxy() method and can add 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the correct header (Proxy-Authorization or Authorization). However, 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; to determine the hostname I currently have this:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; String host;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (isProxy()) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; // FIXME this should actually be determined by the route planner?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; HttpHost proxy = 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ConnRouteParams.getDefaultProxy(request.getParams());
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = proxy.getHostName();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; } else {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = request.getLastHeader(&amp;quot;Host&amp;quot;).getValue();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (isStripPort()) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = host.replaceAll(&amp;quot;:[0-9]+$&amp;quot;, &amp;quot;&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; init(host);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I noticed a few frames up in DefaultRequestDirector.handleResponse 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the actual proxy host is known:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; if (this.proxyAuthHandler.isAuthenticationRequested(response, 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; context)) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; HttpHost proxy = route.getProxyHost();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; this.log.debug(&amp;quot;Proxy requested authentication&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; Map&amp;lt;String, Header&amp;gt; challenges = 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; this.proxyAuthHandler.getChallenges(response, context);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; try {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;processChallenges(challenges,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.proxyAuthState, this.proxyAuthHandler,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response, context);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (AuthenticationException ex) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; But this information is not available to me at the FIXME location. 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I'm also ignoring any forced route now, but it seems wrong to copy 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; paste the code from DefaultHttpRoutePlanner anyway, especially since 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; that's just the default implementation anyhow and could be overridden.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Next thing I'll look into is why the redirect fails.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; This looks nasty. The usual way of obtaining contextual details in 
&lt;br&gt;&amp;gt;&amp;gt; HttpClient is by examining attributes of the HttpContext instance 
&lt;br&gt;&amp;gt;&amp;gt; associated with the request being executed. The trouble is that auth 
&lt;br&gt;&amp;gt;&amp;gt; schemes factories presently have no means of getting hold of the 
&lt;br&gt;&amp;gt;&amp;gt; HttpContext.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; One possibility of fixing it would be extending or replacing the 
&lt;br&gt;&amp;gt;&amp;gt; AuthSchemeFactory with something better.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt; public interface BetterAuthSchemeFactory extends AuthSchemeFactory {
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; AuthScheme newInstance(HttpContext context, HttpParams params);
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; This is double but is far from trivial if 100% binary compatibility 
&lt;br&gt;&amp;gt;&amp;gt; with 4.0 is to be retained.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Feel free to go ahead and open a change request in JIRA for this issue.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Oleg
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Probably a better alternative would be something like that
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---------
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* This interface represents an extended &amp;nbsp;authentication scheme
&lt;br&gt;&amp;gt; &amp;nbsp;* that requires access to {@link HttpContext} in order to
&lt;br&gt;&amp;gt; &amp;nbsp;* generate an authorization string.
&lt;br&gt;&amp;gt; &amp;nbsp;*
&lt;br&gt;&amp;gt; &amp;nbsp;* @since 4.1
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; public interface ContextAwareAuthScheme extends AuthScheme {
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Produces an authorization string for the given set of
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* {@link Credentials}.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param credentials The set of credentials to be used for 
&lt;br&gt;&amp;gt; athentication
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param request The request being authenticated
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param context HTTP context
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @throws AuthenticationException if authorization string cannot
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp; be generated due to an authentication failure
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the authorization string
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Header authenticate(
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Credentials credentials,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HttpRequest request,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HttpContext context) throws AuthenticationException;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---------
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Oleg
&lt;/div&gt;&lt;/div&gt;Hi Oleg,
&lt;br&gt;&lt;br&gt;The ContextAwareAuthScheme looks perfect for the job.
&lt;br&gt;&lt;br&gt;Should I open a JIRA issue for it?
&lt;br&gt;&lt;br&gt;How will binary compatibility be maintained? An instanceof check at the 
&lt;br&gt;location where AuthScheme is used at the moment?
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Sebastiaan
&lt;br&gt;&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26752734&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26752734&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;smime.p7s&lt;/strong&gt; (4K) &lt;a href=&quot;http://old.nabble.com/attachment/26752734/0/smime.p7s&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Kerberos-proxy-authentication-issue-tp26744415p26752734.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26752663</id>
	<title>Re: Kerberos proxy authentication issue</title>
	<published>2009-12-11T14:52:28Z</published>
	<updated>2009-12-11T14:52:28Z</updated>
	<author>
		<name>olegk</name>
	</author>
	<content type="html">Oleg Kalnichevski wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt; Oleg Kalnichevski wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan van Erk wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks for your reply.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; There's a good chance I'm going to have to get this working, even if it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; means I'm going to have to delve into this myself. I'll contact the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; original developer and see if he sees anything obvious, but in any 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; case,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; if I succeed in getting it working, I will happily contribute the 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; patches.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hi Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Cool. In my turn I will happily help with HttpClient specific stuff.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi Oleg,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I got the proxy authentication working already. I even tested it when 
&lt;br&gt;&amp;gt;&amp;gt; both proxy auth and http auth are required and it works.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; There is just one small issue: I need the proxy host name to generate 
&lt;br&gt;&amp;gt;&amp;gt; the kerberos service name (HTTP/proxyhost@REALM). The current 
&lt;br&gt;&amp;gt;&amp;gt; NegotiateScheme code doesn't handle proxy auth at all and always uses 
&lt;br&gt;&amp;gt;&amp;gt; the target host name which it retrieves from the Host header (is that 
&lt;br&gt;&amp;gt;&amp;gt; the best way to get the target host?):
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; if (isStripPort()) {
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; init((request.getLastHeader(&amp;quot;Host&amp;quot;)).getValue().replaceAll(&amp;quot;:[0-9]+$&amp;quot;, 
&lt;br&gt;&amp;gt;&amp;gt; &amp;quot;&amp;quot;) );
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; } else {
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; init( (request.getLastHeader(&amp;quot;Host&amp;quot;)).getValue());
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I changed the NegotiateScheme to extend AuthSchemeBase (like 
&lt;br&gt;&amp;gt;&amp;gt; NTLMScheme). Now I have access to the isProxy() method and can add the 
&lt;br&gt;&amp;gt;&amp;gt; correct header (Proxy-Authorization or Authorization). However, to 
&lt;br&gt;&amp;gt;&amp;gt; determine the hostname I currently have this:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; String host;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; if (isProxy()) {
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; // FIXME this should actually be determined by the route planner?
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; HttpHost proxy = 
&lt;br&gt;&amp;gt;&amp;gt; ConnRouteParams.getDefaultProxy(request.getParams());
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = proxy.getHostName();
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; } else {
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = request.getLastHeader(&amp;quot;Host&amp;quot;).getValue();
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; if (isStripPort()) {
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; host = host.replaceAll(&amp;quot;:[0-9]+$&amp;quot;, &amp;quot;&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; init(host);
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I noticed a few frames up in DefaultRequestDirector.handleResponse the 
&lt;br&gt;&amp;gt;&amp;gt; actual proxy host is known:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; if (this.proxyAuthHandler.isAuthenticationRequested(response, 
&lt;br&gt;&amp;gt;&amp;gt; context)) {
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; HttpHost proxy = route.getProxyHost();
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; this.log.debug(&amp;quot;Proxy requested authentication&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; Map&amp;lt;String, Header&amp;gt; challenges = 
&lt;br&gt;&amp;gt;&amp;gt; this.proxyAuthHandler.getChallenges(response, context);
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; try {
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;processChallenges(challenges,
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.proxyAuthState, this.proxyAuthHandler,
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response, context);
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (AuthenticationException ex) {
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; But this information is not available to me at the FIXME location. I'm 
&lt;br&gt;&amp;gt;&amp;gt; also ignoring any forced route now, but it seems wrong to copy paste 
&lt;br&gt;&amp;gt;&amp;gt; the code from DefaultHttpRoutePlanner anyway, especially since that's 
&lt;br&gt;&amp;gt;&amp;gt; just the default implementation anyhow and could be overridden.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Next thing I'll look into is why the redirect fails.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt;&amp;gt; Sebastiaan
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Hi Sebastiaan
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This looks nasty. The usual way of obtaining contextual details in 
&lt;br&gt;&amp;gt; HttpClient is by examining attributes of the HttpContext instance 
&lt;br&gt;&amp;gt; associated with the request being executed. The trouble is that auth 
&lt;br&gt;&amp;gt; schemes factories presently have no means of getting hold of the 
&lt;br&gt;&amp;gt; HttpContext.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; One possibility of fixing it would be extending or replacing the 
&lt;br&gt;&amp;gt; AuthSchemeFactory with something better.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---
&lt;br&gt;&amp;gt; public interface BetterAuthSchemeFactory extends AuthSchemeFactory {
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; AuthScheme newInstance(HttpContext context, HttpParams params);
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; ---
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This is double but is far from trivial if 100% binary compatibility with 
&lt;br&gt;&amp;gt; 4.0 is to be retained.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Feel free to go ahead and open a change request in JIRA for this issue.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Oleg
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;Probably a better alternative would be something like that
&lt;br&gt;&lt;br&gt;---------
&lt;br&gt;/**
&lt;br&gt;&amp;nbsp; * This interface represents an extended &amp;nbsp;authentication scheme
&lt;br&gt;&amp;nbsp; * that requires access to {@link HttpContext} in order to
&lt;br&gt;&amp;nbsp; * generate an authorization string.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * @since 4.1
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&lt;br&gt;public interface ContextAwareAuthScheme extends AuthScheme {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Produces an authorization string for the given set of
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * {@link Credentials}.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param credentials The set of credentials to be used for 
&lt;br&gt;athentication
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param request The request being authenticated
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param context HTTP context
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws AuthenticationException if authorization string cannot
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp; be generated due to an authentication failure
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return the authorization string
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Header authenticate(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Credentials credentials,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;HttpRequest request,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;HttpContext context) throws AuthenticationException;
&lt;br&gt;&lt;br&gt;}
&lt;br&gt;&lt;br&gt;---------
&lt;br&gt;&lt;br&gt;Oleg
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26752663&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26752663&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;httpclient-users-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/HttpClient-User-f20180.html&quot; embed=&quot;fixTarget[20180]&quot; target=&quot;_top&quot; &gt;HttpClient-User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Kerberos-proxy-authentication-issue-tp26744415p26752663.html" />
</entry>

</feed>
