JBoss-Webservice hinter Reverse Proxy, https zu http

JBoss-Webservice hinter Reverse Proxy, https zu http

Ich habe einen JAX-WS-Webdienst bereitgestellt, der in JBoss 7.1.1 gehostet wird. Der Zugriff auf den Webdienst erfolgt über einen Reverse-Proxy. Um vom öffentlichen Internet aus auf den Dienst zuzugreifen, muss dies über das https-Protokoll erfolgen, aber die Kommunikation zwischen dem Reverse-Proxy und JBoss erfolgt über http. Der in der WSDL-Datei vorhandene Host ist also http <soap:address location="http://example.com/WS"/>und muss es sein <soap:address location="https://example.com/WS"/>.

Die JBoss-Konfiguration ist wie folgt:

modify-wsdl-addres = true


wsdl-host = jbossws.undefined.host

Hier ist die Referenz für die Webservices-Konfiguration: https://docs.jboss.org/author/display/AS71/Web+services+configuration

Aber ich kann herausfinden, wo ich in der Soap-Adresse das Protokoll https erzwingen kann.

Antwort1

Die webund webservicesSubsystemkonfigurationen arbeiten zusammen, um die Endpunkt-URL (und auch URLs für xs:import-Anweisungen) bereitzustellen.

Fügen Sie in der webservicesKonfiguration die folgende Zeile hinzu

<wsdl-port>443</wsdl-port>

Ändern Sie in der webKonfiguration das Schema des HTTP-Connectors von httpauf httpsund fügen Sie hinzuproxy-port="443"

Es wird also so aussehen:

<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false">
    <connector name="http" protocol="HTTP/1.1" scheme="https" socket-binding="http" 
     secure="true" proxy-port="443"/>
     ...
</subsystem>
<subsystem xmlns="urn:jboss:domain:webservices:1.2">
    <modify-wsdl-address>true</modify-wsdl-address>
    <wsdl-host>jbossws.undefined.host</wsdl-host>
    <wsdl-port>443</wsdl-port>
    ...
</subsystem>

verwandte Informationen