<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="https://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
JAXWSProperties.SSL_SOCKET_FACTORY alternative in JBoss
</h3>
<span style="margin-bottom: 10px;">
created by <a href="https://community.jboss.org/people/ne1mackan">Markus KilÄs</a> in <i>JBoss Web Services</i> - <a href="https://community.jboss.org/message/737901#737901">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>I have WS clients inside the application server making web services calls out to other servers. I need to specify the SSLSocket factory to be used by the request (as I have custom keystores and trust stores). </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>The first obvious solution is to set the default SSLSocketFactory of the HttpsURLConnection:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>{code}</p><p>// SSLSocketFactory factory = ...</p><p>HttpsURLConnection.setDefaultSSLSocketFactory(factory);</p><p>{code}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>This works fine on both JBoss 5.1.0 and GlassFish 3.1.2 as long as all SSL connections in the VM can use the same truststore/keystore and keys.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>However in my case I want to be able to connect to different servers using different keystores and having multiple concurrent requests. This means that setting the SSLSocketFactory globally for the VM is not an option.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Instead the JAX-WS RI offers an way of specifying the SSLSocketFactory per request:</p><p>{code}</p><p>import com.sun.xml.ws.developer.JAXWSProperties;</p><p>...</p><p>EjbcaWS ejbca = service.getEjbcaWSPort();</p><p>BindingProvider binding = (BindingProvider) ejbca;</p><p>Map<String, Object> requestContext = binding.getRequestContext();</p><p>requestContext.put(JAXWSProperties.SSL_SOCKET_FACTORY, factory);</p><p>{code}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>This achieves exactly the functionality I need and works perfect on GlassFish, however the property is ignored by JBoss 5.1.0.GA-jdk6.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><strong>Is there a similar property that JBoss uses or how can I achive different SSL socket factories per request?</strong></p><p><strong><br/></strong></p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="https://community.jboss.org/message/737901#737901">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss Web Services at <a href="https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2044">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>