<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:595.3pt 841.9pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-GB link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span class=postbody><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>I cannot seem to get jcifs NTLM working with
SSL/HTTPS. I get the following exception: </span></font></span><br>
<span class=postbody>&nbsp;&nbsp; <a
href="http://java.sun.com/javase/6/docs/api/java/lang/NoSuchMethodException.html"
target="_new"
title="http://java.sun.com/javase/6/docs/api/java/lang/NoSuchMethodException.html&#10;Java API">java.lang.NoSuchMethodException</a>:
jcifs.http.NtlmHttpURLConnection.getSSLSocketFactory() </span><br>
<br>
In a nutshell, CXF is trying to decorate the <span class=postbody>javax.net.ssl.HttpsURLConnection.getSSLSocketFactory
method &#8211; but NTLM has replaced the https connection with its own handler:
NtlmHttpURLConnection which doesn&#8217;t have this method, hence the exception.
Is it actually possible to use both SSL and NTLM using CXF (or any other JAX-WS
implementation)? I have posted this on the CXF mailing list, but I have been
directed here.<o:p></o:p></span></p>

<p class=MsoNormal><span class=postbody><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'><o:p>&nbsp;</o:p></span></font></span></p>

<p class=MsoNormal><span class=postbody><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>I&#8217;m banging my head against a wall at the
moment! Any help would be greatly appreciated.<o:p></o:p></span></font></span></p>

<p class=MsoNormal><span class=postbody><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'><o:p>&nbsp;</o:p></span></font></span></p>

<p class=MsoNormal><span class=postbody><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>Code:<o:p></o:p></span></font></span></p>

<p class=MsoNormal style='margin-bottom:12.0pt'><span class=postbody><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'>I am using the <a
href="http://cwiki.apache.org/CXF20DOC/client-http-transport-including-ssl-support.html"
target="_new"
title="http://cwiki.apache.org/CXF20DOC/client-http-transport-including-ssl-support.html">NTLM
Authentication</a> example almost verbatim, and then used a conduit to allow
HTTPS:<o:p></o:p></span></font></span></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; //Set the jcifs properties<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;
jcifs.Config.setProperty(&quot;jcifs.smb.client.domain&quot;,
&quot;my.domain.com&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;
jcifs.Config.setProperty(&quot;jcifs.netbios.wins&quot;, &quot;my.wins.server.com&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;
jcifs.Config.setProperty(&quot;jcifs.smb.client.soTimeout&quot;,
&quot;300000&quot;); //5 minutes<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;
jcifs.Config.setProperty(&quot;jcifs.netbios.cachePolicy&quot;,
&quot;1200&quot;); //20 minutes<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>//&nbsp;&nbsp;&nbsp;
jcifs.Config.setProperty(&quot;jcifs.smb.client.username&quot;, &quot;myNTLogin&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>//&nbsp;&nbsp;&nbsp;
jcifs.Config.setProperty(&quot;jcifs.smb.client.password&quot;,
&quot;secret&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; //Register the jcifs URL handler to
enable NTLM<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; jcifs.Config.registerSmbURLHandler();<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; ClientProxyFactoryBean factory = new
ClientProxyFactoryBean(new JaxWsClientFactoryBean());<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; factory.setServiceClass( ListsSoap.class
);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; factory.setAddress(
&quot;https://my.service.endpoint.url&quot; );<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; ListsSoap client = (ListsSoap)
factory.create();<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; Client proxy = ClientProxy.getClient(
client );<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; HTTPClientPolicy httpClientPolicy = new
HTTPClientPolicy();<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;
httpClientPolicy.setConnectionTimeout(36000);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; httpClientPolicy.setAllowChunking(false);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; HTTPConduit conduit = (HTTPConduit)
proxy.getConduit();<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; conduit.setClient(httpClientPolicy);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; TLSClientParameters tcp = new
TLSClientParameters();<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; tcp.setTrustManagers( new TrustManager[]{
new TrustAllX509TrustManager() } );<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; conduit.setTlsClientParameters( tcp );<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; GetListCollectionResult col&nbsp; =
client.getListCollection();<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; System.out.println(col);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>