<!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="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">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;">
    JBOSS 5.1.0GA + EJB/JNDI over HTTPS
</h3>
<span style="margin-bottom: 10px;">
    reply from <a href="http://community.jboss.org/people/crussell42">Chris Russell</a> in <i>JBoss Remoting</i> - <a href="http://community.jboss.org/message/547833#547833">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>As per <a class="jive-link-message-small" href="http://community.jboss.org/message/518953#518953">http://community.jboss.org/message/518953#518953</a></p><p>And&#160; <a class="jive-link-wiki-small" href="http://community.jboss.org/docs/DOC-13276">http://community.jboss.org/wiki/EJB3overHTTPHTTPSinJBossAS-5</a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min- padding: 0px;">I am able to make it work in both 5.0.1GA and 5.0.0EAP and 5.0.1SOA.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min- padding: 0px;">I use iptables to block everything except 8443 then use wire shark and all communication takes place over 8443.</p><p style="min- padding: 0px;">I have only every used the @RemoteBinding method however not the xml config file.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min- padding: 0px;">Here is the abreviated config and code</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min- padding: 0px;"><strong>The bean</strong></p><p style="min- padding: 0px;"><strong>{code}<br/></strong></p><p style="min- padding: 0px;"><span>@RemoteBinding(clientBindUrl = "</span><a class="jive-link-external-small" href="https://10.0.0.75:8443/servlet-invoker/SSLServerInvokerServlet/?timeout=300000&amp;invokerDestructionDelay=300000" target="_blank">https://10.0.0.75:8443/servlet-invoker/SSLServerInvokerServlet/?timeout=300000&amp;invokerDestructionDelay=300000</a><span>")</span><br/>public class AgencyManagerProxyBean implements AgencyManagerProxyRemote, AgencyManagerProxyLocal {</p><p style="min- padding: 0px;">{code}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min- padding: 0px;"><strong>The thick client connection part looks like this</strong></p><p style="min- padding: 0px;">{code}</p><p style="min- padding: 0px;">&#160;&#160;&#160;&#160; securityClient = SecurityClientFactory.getSecurityClient();&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; securityClient.setVmwideAssociation(true);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; boolean loggedIn=false;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; int tryCount=0;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; while (!loggedIn) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; try {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; tryCount++;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Ask for username and password this sets AgencyManagerPrefs values&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; new LoginDialog(agencyManagerFrame);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //The username and password were set in the LoginDialog<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String username = AgencyManagerPrefs.getProperty(AgencyManagerConstants.USERNAME_KEY);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String password = AgencyManagerPrefs.getProperty(AgencyManagerConstants.PASSWORD_KEY);&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //NOTE all this does is set some variables no actual login occurs<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //that happens in the jndi lookup and initial ejb invocation level.<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; securityClient.setSimple(username, password);&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; securityClient.login();&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; logger.info("SecurityClient data set");<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Properties props = new Properties();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; props.put("java.naming.factory.initial", "org.jboss.naming.HttpNamingContextFactory");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String providerUrl = "</span><a class="jive-link-external-small" href="https://" target="_blank">https://</a><span>"+AgencyManagerPrefs.getProperty(AgencyManagerConstants.AMPROXY_HOST_KEY)+":8443/invoker/JNDIFactory";</span><br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; props.put("java.naming.provider.url", providerUrl);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //JBOSS claims we need this rather than security client.<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; props.put(Context.SECURITY_PRINCIPAL, username);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; props.put(Context.SECURITY_CREDENTIALS, password);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; props.put("java.naming.factory.url.pkgs", "org.jboss.naming");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Context ctx = new InitialContext(props);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; logger.info("Created context");<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; logger.info(ctx);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //logger.info(props);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; logger.info("End Created context");<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; logger.info("Lookup amproxyservice");&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AgencyManagerProxyInterface bean = (AgencyManagerProxyInterface) ctx.lookup("sec-amproxyservice/AgencyManagerProxyBean/remote");<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; logger.info("Got reference to bean");</p><p style="min- padding: 0px;">{code}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min- padding: 0px;"><strong>The jboss 5.1 ga, 5.0eap, 5.0.1soa config changes</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min- padding: 0px;">== Open the SSL socket ==<br/>{noformat}<br/>edit server/default/deploy/jbossweb.sar/server.xml<br/>uncomment section "SSL/TLS Connector" to enable Connector port="8443"<br/>replace keystoreFile="${jboss.server.home.dir}/conf/chap8.keystore" with&#160; your keystore name<br/>replace keystorePass="rmi+ssl" sslProtocol = "TLS" /&gt; with keystorePass="&lt;your new secure password&gt;" sslProtocol = "TLS" /&gt;<br/>{noformat}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>== Expose JNDI Naming service via HTTPS ==<br/>Edit /opt/java/jboss/server/default/deploy/http-invoker.sar/META-INF/jboss-service.xml<br/>It needs to contain the following 2 entries. '''NOTE''' the http one below is commented out and should replace<br/>the '''matching un-commented''' one that is in the file by default.</p><p>{code:xml}</p><p>&lt;pre&gt;<br/>&#160;&#160; &lt;!-- Expose the Naming service interface via HTTP <br/>&#160;&#160; &lt;mbean code="org.jboss.invocation.http.server.HttpProxyFactory"<br/>&#160;&#160;&#160;&#160;&#160; name="jboss:service=invoker,type=http,target=Naming"&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;attribute name="InvokerName"&gt;jboss:service=Naming&lt;/attribute&gt;<br/><span>&#160;&#160;&#160;&#160;&#160; &lt;attribute name="InvokerURLPrefix"&gt;</span><a class="jive-link-external-small" href="http://" target="_blank">http://</a><span>&lt;/attribute&gt;</span><br/>&#160;&#160;&#160;&#160;&#160; &lt;attribute name="InvokerURLSuffix"&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;value-factory bean="ServiceBindingManager" method="getStringBinding"&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;parameter&gt;jboss.web:service=WebServer&lt;/parameter&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;parameter&gt;:${port}/invoker/JMXInvokerServlet&lt;/parameter&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/value-factory&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;/attribute&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;attribute name="UseHostName"&gt;true&lt;/attribute&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;attribute name="ExportedInterface"&gt;org.jnp.interfaces.Naming&lt;/attribute&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;attribute name="JndiName"&gt;&lt;/attribute&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;attribute name="ClientInterceptors"&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;interceptors&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;interceptor&gt;org.jboss.proxy.ClientMethodInterceptor&lt;/interceptor&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;interceptor&gt;org.jboss.proxy.SecurityInterceptor&lt;/interceptor&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;interceptor&gt;org.jboss.naming.interceptors.ExceptionInterceptor&lt;/interceptor&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;interceptor&gt;org.jboss.invocation.InvokerInterceptor&lt;/interceptor&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/interceptors&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;/attribute&gt;<br/>&#160;&#160; &lt;/mbean&gt;<br/>&#160;&#160; --&gt;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160;&#160; &lt;!-- Expose the Naming service interface via HTTPS --&gt;<br/>&#160;&#160; &lt;mbean code="org.jboss.invocation.http.server.HttpProxyFactory"<br/>&#160;&#160;&#160;&#160;&#160; name="jboss:service=invoker,type=http,target=Naming"&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;attribute name="InvokerName"&gt;jboss:service=Naming&lt;/attribute&gt;<br/><span>&#160;&#160;&#160;&#160;&#160; &lt;attribute name="InvokerURLPrefix"&gt;</span><a class="jive-link-external-small" href="https://" target="_blank">https://</a><span>&lt;/attribute&gt;</span><br/>&#160;&#160;&#160;&#160;&#160; &lt;attribute name="InvokerURLSuffix"&gt;:8443/invoker/JMXInvokerServlet&lt;/attribute&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;attribute name="UseHostName"&gt;true&lt;/attribute&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;attribute name="ExportedInterface"&gt;org.jnp.interfaces.Naming&lt;/attribute&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;attribute name="JndiName"&gt;&lt;/attribute&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;attribute name="ClientInterceptors"&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;interceptors&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;interceptor&gt;org.jboss.proxy.ClientMethodInterceptor&lt;/interceptor&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;interceptor&gt;org.jboss.proxy.SecurityInterceptor&lt;/interceptor&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;interceptor&gt;org.jboss.naming.interceptors.ExceptionInterceptor&lt;/interceptor&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;interceptor&gt;org.jboss.invocation.InvokerInterceptor&lt;/interceptor&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/interceptors&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;/attribute&gt;<br/>&#160;&#160; &lt;/mbean&gt;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&lt;/pre&gt;</p><p>{code:xml}</p><p><br/>== Add the Servlet Invoker ==<br/>This will add the servlet invoker that allows us to do https jndi lookups and ejb invocations from clients over https.<br/>{noformat}<br/>$ cd /opt/java/jboss/server/default/deploy<br/>{noformat}<br/>Then create a file servlet-invoker-service.xml and a directory and file servlet-invoker.war/WEB-INF/web.xml<br/>The contents of these are as follows<br/>'''servlet-invoker-service.xml'''</p><p>{code:xml}</p><p>&lt;pre&gt;<br/>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br/>&lt;!DOCTYPE web-app PUBLIC<br/>&#160;&#160; "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"<br/><span>&#160;&#160; "</span><a class="jive-link-external-small" href="http://java.sun.com/dtd/web-app_2_3.dtd" target="_blank">http://java.sun.com/dtd/web-app_2_3.dtd</a><span>"&gt;</span><br/>&lt;web-app&gt;<br/>&#160;&#160;&#160; &lt;servlet&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;servlet-name&gt;ServerInvokerServlet&lt;/servlet-name&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;description&gt;The ServerInvokerServlet receives requests via HTTP<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; protocol from within a web container and passes it onto the<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ServletServerInvoker for processing.<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/description&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;servlet-class&gt;org.jboss.remoting.transport.servlet.web.ServerInvokerServlet&lt;/servlet-class&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;init-param&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;param-name&gt;locatorUrl&lt;/param-name&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;param-value&gt;servlet://${jboss.bind.address}:8080/servlet-invoker/ServerInvokerServlet&lt;/param-value&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;description&gt;The servlet server invoker&lt;/description&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/init-param&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br/>&#160;&#160;&#160; &lt;/servlet&gt;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160;&#160;&#160; &lt;servlet&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;servlet-name&gt;SSLServerInvokerServlet&lt;/servlet-name&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;description&gt;The ServerInvokerServlet receives requests via HTTPS<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; protocol from within a web container and passes it onto the<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ServletServerInvoker for processing.<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/description&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;servlet-class&gt;org.jboss.remoting.transport.servlet.web.ServerInvokerServlet&lt;/servlet-class&gt;&#160;&#160;&#160;&#160;&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;init-param&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;param-name&gt;locatorUrl&lt;/param-name&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;param-value&gt;sslservlet://${jboss.bind.address}:8443/servlet-invoker/SSLServerInvokerServlet&lt;/param-value&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;description&gt;The servlet server invoker&lt;/description&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/init-param&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;load-on-startup&gt;2&lt;/load-on-startup&gt;<br/>&#160;&#160;&#160; &lt;/servlet&gt;<br/>&#160;&#160; <br/>&#160;&#160;&#160; &lt;servlet-mapping&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;servlet-name&gt;ServerInvokerServlet&lt;/servlet-name&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;url-pattern&gt;/ServerInvokerServlet/*&lt;/url-pattern&gt;<br/>&#160;&#160;&#160; &lt;/servlet-mapping&gt;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160;&#160;&#160; &lt;servlet-mapping&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;servlet-name&gt;SSLServerInvokerServlet&lt;/servlet-name&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;url-pattern&gt;/SSLServerInvokerServlet/*&lt;/url-pattern&gt;<br/>&#160;&#160;&#160; &lt;/servlet-mapping&gt;<br/>&#160;&#160; <br/>&lt;/web-app&gt;<br/>{code:xml}</p><p><br/><strong>'''servlet-invoker.war/WEB-INF/web.xml'''</strong></p><p>{code:xml}<br/>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br/>&lt;server&gt;<br/>&#160; &lt;mbean code="org.jboss.remoting.transport.Connector" name="jboss.remoting:service=connector,transport=servlet"<br/>&#160;&#160;&#160; display-name="Servlet transport Connector"&gt;<br/>&#160;&#160;&#160; &lt;attribute name="InvokerLocator"&gt;servlet://${jboss.bind.address}:8080/servlet-invoker/ServerInvokerServlet&lt;/attribute&gt;<br/>&#160;&#160;&#160; &lt;attribute name="Configuration"&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;handlers&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;handler subsystem="AOP"&gt;org.jboss.aspects.remoting.AOPRemotingInvocationHandler&lt;/handler&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;/handlers&gt;<br/>&#160;&#160;&#160; &lt;/attribute&gt;<br/>&#160; &lt;/mbean&gt;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160; &lt;mbean code="org.jboss.remoting.transport.Connector" name="jboss.remoting:service=connector,transport=sslservlet"<br/>&#160;&#160;&#160; display-name="Servlet transport Connector"&gt;<br/>&#160;&#160;&#160; &lt;attribute name="InvokerLocator"&gt;sslservlet://${jboss.bind.address}:8443/servlet-invoker/SSLServerInvokerServlet&lt;/attribute&gt;<br/>&#160;&#160;&#160; &lt;attribute name="Configuration"&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;handlers&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;handler subsystem="AOP"&gt;org.jboss.aspects.remoting.AOPRemotingInvocationHandler&lt;/handler&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;/handlers&gt;<br/>&#160;&#160;&#160; &lt;/attribute&gt;<br/>&#160; &lt;/mbean&gt; <br/>&lt;/server&gt;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>{code:xml}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>== FIX EAP 5.0==<br/>If you dont do this clients will get the dreaded<br/>Caused by: java.net.ProtocolException: Server redirected too many&#160; times (20)</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span>As per [</span><a class="jive-link-external-small" href="http://community.jboss.org/thread/146840" target="_blank">http://community.jboss.org/thread/146840</a><span> Jira CR created]</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>So to fix this particular issue I edited</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>'''server/default/deploy/http-invoker.sar/invoker.war/WEB-INF/web.xml'''</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>And commented out the url-pattern stuff at the bottom.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Note I did try just setting the roles.properties to have my user have a HttpInvoker role but that did not work.<br/>{code:xml}<br/>&#160;&#160; &lt;!-- An example security constraint that restricts access to the HTTP invoker<br/>&#160;&#160; to users with the role HttpInvoker Edit the roles to what you want and<br/>&#160;&#160; configure the WEB-INF/jboss-web.xml/security-domain element to reference<br/>&#160;&#160; the security domain you want.<br/>&#160;&#160; --&gt;<br/>&#160;&#160; &lt;security-constraint&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;web-resource-collection&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;web-resource-name&gt;HttpInvokers&lt;/web-resource-name&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;description&gt;An example security config that only allows users with the<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; role HttpInvoker to access the HTTP invoker servlets<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/description&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;url-pattern&gt;/restricted/*&lt;/url-pattern&gt;<br/>&#160;&#160;&#160;&#160; &lt;!-- COMMENT OUT THIS AND 5.0 EAP works.<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;url-pattern&gt;/JNDIFactory/*&lt;/url-pattern&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;url-pattern&gt;/EJBInvokerServlet/*&lt;/url-pattern&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;url-pattern&gt;/JMXInvokerServlet/*&lt;/url-pattern&gt;<br/>&#160;&#160;&#160;&#160; --&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;http-method&gt;GET&lt;/http-method&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;http-method&gt;POST&lt;/http-method&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;/web-resource-collection&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;auth-constraint&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;role-name&gt;HttpInvoker&lt;/role-name&gt;<br/>&#160;&#160;&#160;&#160;&#160; &lt;/auth-constraint&gt;<br/>&#160;&#160; &lt;/security-constraint&gt;<br/>&lt;/pre&gt;</p><p style="min- padding: 0px;">{code:xml}</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/547833#547833">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss Remoting at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2050">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>