Author: buildbot
Date: Thu Mar 21 19:25:10 2013
New Revision: 855469

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/http4.html

Modified: websites/production/camel/content/http4.html
==============================================================================
--- websites/production/camel/content/http4.html (original)
+++ websites/production/camel/content/http4.html Thu Mar 21 19:25:10 2013
@@ -465,7 +465,48 @@ httpComponent.setHttpClientConfigurer(<s
 </pre>
 </div></div>
 
-<p>As long as you implement the HttpClientConfigurer and configure your 
keystore and truststore as described above, it will work fine.</p></div>
+<p>As long as you implement the HttpClientConfigurer and configure your 
keystore and truststore as described above, it will work fine.</p>
+
+<h5><a shape="rect" name="HTTP4-UsingHTTPStoauthenticategotchas"></a>Using 
HTTPS to authenticate gotchas</h5>
+
+<p>An end user reported that he had problem with authenticating with HTTPS. 
The problem was eventually resolved by providing a custom configured 
<tt>org.apache.http.protocol.HttpContext</tt>:</p>
+
+<p>1. Create a (Spring) factory for HttpContexts:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent 
panelContent">
+<pre class="code-java">
+<span class="code-keyword">public</span> class HttpContextFactory {
+
+  <span class="code-keyword">private</span> <span 
class="code-object">String</span> httpHost = <span 
class="code-quote">"localhost"</span>;
+  <span class="code-keyword">private</span> <span 
class="code-object">String</span> httpPort = 9001;
+
+  <span class="code-keyword">private</span> BasicHttpContext httpContext = 
<span class="code-keyword">new</span> BasicHttpContext();
+  <span class="code-keyword">private</span> BasicAuthCache authCache = <span 
class="code-keyword">new</span> BasicAuthCache();
+  <span class="code-keyword">private</span> BasicScheme basicAuth = <span 
class="code-keyword">new</span> BasicScheme();
+
+  <span class="code-keyword">public</span> HttpContext getObject() {
+    authCache.put(<span class="code-keyword">new</span> HttpHost(httpHost, 
httpPort), basicAuth);
+
+    httpContext.setAttribute(ClientContext.AUTH_CACHE, authCache);
+
+    <span class="code-keyword">return</span> httpContext;
+  }
+
+  <span class="code-comment">// getter and setter
+</span>}
+</pre>
+</div></div>
+<p>2. Declare an HttpContext in the Spring application context file:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent 
panelContent">
+<pre class="code-java">
+&lt;bean id=<span class="code-quote">"myHttpContext"</span> factory-bean=<span 
class="code-quote">"httpContextFactory"</span> factory-method=<span 
class="code-quote">"getObject"</span>/&gt;
+</pre>
+</div></div>
+<p>3. Reference the context in the http4 URL:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent 
panelContent">
+<pre class="code-java">
+&lt;to uri=<span class="code-quote">"https4:<span 
class="code-comment">//myhostname.com:443/myURL?httpContext=myHttpContext"</span>/&gt;</span>
+</pre>
+</div></div></div>
         </td>
         <td valign="top">
           <div class="navigation">


Reply via email to