2016-08-12 50 views
1

我有一个使用spring-WS实现WSDL的微服务(spring-boot)。 该计划是使用Zuul通过网关服务器访问WSDL。Zuul代理之后的spring-ws

从网关访问:HTTP // 192.168.1.5:8080 /积分/ WS/test.wsdl

的Zuul路径被配置成在所述网关:

integration: 
    sensitive-headers: 
    path: /integration/** 
    url: http://localhost:9090 

的WSDL与返回正确的端口号(8080)但主机名不正确。也不返回前缀“/ integration”。

<wsdl:service name="TestPortService"> 
    <wsdl:port binding="tns:TestPortSoap11" name="TestPortSoap11"> 
     <soap:address location="http://localhost:8080/ws"/> 
    </wsdl:port> 
</wsdl:service> 

即使我手动设置X-Forwarded-For标头,主机名似乎永远不会改变。 [这个我没有Zuul测试]。为了让Spring-WS在代理之后工作,我错过了什么?我在Spring引导的应用程序属性中设置了remote_ip_header & protocol_header。

回答

1

在默认转发请求之前,Zuul实际上会从请求中剥离代理前缀。您可以像下面的stripPrefix=false一样关闭个别服务。如果你想为所有路线,然后zuul.stripPrefix=false

application.yml 
zuul: 
    routes: 
    users: 
     path: /myusers/** 
     stripPrefix: false 

希望这将解决您的问题。

相关问题