3 Replies Latest reply on May 9, 2011 6:35 AM by ShravanKumar Raju

    how to expose wsdl over https (soap/https)

    ShravanKumar Raju Newbie

      Dear Experts,

       

      Can someone please throw some light on how to expose a WSDL over https using ESB project.

       

      I have attached a ESB project called httpsnbi, have tried using JBR provider for this purspose.

      using http-gateway i can expose a WSDL over http easily. am trying to find a way for wsdl's running securely on https.

       

      <jbr-provider host="10.232.163.87" name="provConnector"

                  protocol="https">

                  <!-- Https/SSL settings -->

                  <property name="jbr-KeyStoreURL" value="/keys/keystore" />

                  <property name="jbr-KeyStorePassword" value="changeit" />

                  <property name="jbr-TrustStoreURL" value="/keys/keystore" />

                  <property name="jbr-TrustStorePassword" value="changeit" />

                  <property name="jbr-ClientAuthMode" value="need" />

                  <property name="serviceInvokerTimeout" value="20000" />

                  <jbr-bus busid="provConnectorChannel" port="9433" />

              </jbr-provider>

      and corresponding service definition as follows

      <service category="NBI" description="it receives the soap messages over https"

                  invmScope="GLOBAL" invmTransacted="true" name="SOAPConnector">

                  <listeners>

                      <jbr-listener busidref="provConnectorChannel"

                          is-gateway="true" maxThreads="100" name="jbrchannel1" />

                      <jms-listener busidref="sagwsEsbChannel" is-gateway="false"

                          maxThreads="1" name="esb" />

                  </listeners>

                  <actions faultXsd="/sagsoapfault.xsd" inXsd="/sagsoaprequest.xsd"

                      mep="RequestResponse" outXsd="/sagsoapresponse.xsd" validate="true"

                      webservice="true">

                      <action class="com.mot.sag.nbi.WSConnector" name="HandleSoapRequest" />

                  </actions>

              </service>

       

      It exposes the wsdl as "http://10.232.163.87:8080/httpsnbi/ebws/NBI/SOAPConnector?wsdl" where as expected one is "https://10.232.163.87:8080/httpsnbi/ebws/NBI/SOAPConnector?wsdl"

       

      Quick response is highly appreciated.

       

      Thanks,

      -Shravan

        • 1. how to expose wsdl over https (soap/https)
          Tom Fennelly Master

          Take a look at the SOAPProxy action.  See the user guide.

          • 2. how to expose wsdl over https (soap/https)
            ShravanKumar Raju Newbie

            Hi Tom,

             

            have tried SOAPProxy as you suggested, the intended wsdl is not exposed. do I need to make any additional configuration at the server level.

             

            -I did the below configuration additionally

                 enabled the 8443 port for ssl communication in the server.xml of jbossweb.sar

             

                  <!-- A AJP 1.3 Connector on port 8009 -->

                  <Connector protocol="AJP/1.3" port="8009" address="${jboss.bind.address}"

                     redirectPort="8443" />

             

                  <!-- SSL/TLS Connector configuration using the admin devl guide keystore  -->

             

                 <Connector protocol="HTTP/1.1" SSLEnabled="true"

                       port="8443" address="${jboss.bind.address}"

                       scheme="https" secure="true" clientAuth="false"

                       keystoreFile="${jboss.server.home.dir}/conf/keystore"

                       keystorePass="changeit" sslProtocol = "TLS" />

               

                  <Engine name="jboss.web" defaultHost="localhost">

             

            and my service configuration as follows.

            <service category="test" description="test service" invmScope="GLOBAL"

                        invmTransacted="true" name="testhttps">

                        <actions>

                            <action class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy"

                                name="proxy">

                                <property name="wsdl"

                                    value="internal://jboss.ws:context=NBIWS,endpoint=services_Provisioning" />

                                <property name="file" value="/META-INF/httpclient-8443.properties" />

                                <property name="clientCredentialsRequired" value="false" />

                                <property name="method" value="POST" />

                                <property name="endpointUrl"

                                    value="https://10.232.163.87:8443/NBIWS/ebws/services/Provisioning?wsdl" />

                            </action>

                        </actions>

                    </service>

             

            httpclient properties as shown below.

            # Configurators

            configurators=HttpProtocol,AuthBASIC

             

            # HttpProtocol config

            #protocol-socket-factory=org.apache.commons.httpclient.contrib.ssl.StrictSSLProtocolSocketFactory

            protocol-socket-factory=org.apache.commons.httpclient.contrib.ssl.EasySSLProtocolSocketFactory

            #protocol-socket-factory=org.jboss.soa.esb.http.protocol.SelfSignedSSLProtocolSocketFactoryBuilder

            #protocol-socket-factory=org.jboss.soa.esb.http.protocol.AuthSSLProtocolSocketFactoryBuilder

            keystore=/keys/keystore

            keystore-passw=changeit

            truststore=/keys/truststore

            truststore-passw=changeit

            https.proxyHost=10.232.163.87

            https.proxyPort=8443

             

             

            # Connection config

            #max-connections-per-host=5

             

            # AuthBASIC config

            auth-username=provuser

            auth-password=motorola

            authscope-host=10.232.163.87

            authscope-port=8080

            authscope-realm=webservice_proxy_security.

             

            Would appreciate your thoughts on the problem being faced by me.

             

            Regards,

            -Shravan

            • 3. how to expose wsdl over https (soap/https)
              ShravanKumar Raju Newbie

              Hi Tom,

              Could you pls have a look at my other post on

              http://community.jboss.org/message/595226#595226

               

              I will appreciate your quick help in this regard.

               

              Regards,

              -Shravan