要访问我的测试,我使用http://hostDesired.com/service?WSDL
:它是直接运行到Mule的常规服务代理。
如何更改它以便能够使用https://hostDesired.com/service?WSDL
进行访问?我尝试过但没有用的是:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:ssl="http://www.mulesoft.org/schema/mule/ssl" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:mulexml="http://www.mulesoft.org/schema/mule/xml" xmlns:https="http://www.mulesoft.org/schema/mule/https"
xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:spring="http://www.springframework.org/schema/beans" xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:pattern="http://www.mulesoft.org/schema/mule/pattern"
xmlns:mule-ss="http://www.mulesoft.org/schema/mule/spring-security"
xmlns:ss="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/xml http://www.mulesoft.org/schema/mule/xml/current/mule-xml.xsd
http://www.mulesoft.org/schema/mule/https http://www.mulesoft.org/schema/mule/https/current/mule-https.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.4/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/3.4/mule-http.xsd
http://www.mulesoft.org/schema/mule/pattern http://www.mulesoft.org/schema/mule/pattern/3.4/mule-pattern.xsd
http://www.mulesoft.org/schema/mule/spring-security http://www.mulesoft.org/schema/mule/spring-security/3.4/mule-spring-security.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd
http://www.mulesoft.org/schema/mule/ssl http://www.mulesoft.org/schema/mule/ssl/current/mule-ssl.xsd" version="EE-3.4.0">
<mule-ss:security-manager>
<mule-ss:delegate-security-provider
name="memory-dao" delegate-ref="authenticationManager" />
</mule-ss:security-manager>
<spring:beans>
<ss:authentication-manager alias="authenticationManager">
<ss:authentication-provider>
<ss:user-service id="userService">
<ss:user name="asd" password="asd" authorities="ROLE_ADMIN" />
</ss:user-service>
</ss:authentication-provider>
</ss:authentication-manager>
</spring:beans>
<https:connector name="httpsConnector">
<https:tls-key-store path="keystore.jks"
keyPassword="${jks.password}" storePassword="${jks.password}" />
</https:connector>
<pattern:web-service-proxy name="ProxyService"
inboundAddress="https://desiredHost/services/Services/Service"
outboundAddress="http://remoteHost/services/Service.svc"
wsdlLocation="http://remoteHost/services/Service.svc?singleWSDL"/>
</mule>
它不起作用......我怎样或怎么做才能把它变成骡子?
基本思想是从客户端向代理服务器添加加密。
答案 0 :(得分:3)
使用HTTPS入站端点时,需要配置HTTPS连接器,以便Mule知道处理请求时要使用的证书。
请参阅HTTPS连接器的配置页面:http://www.mulesoft.org/documentation/display/current/HTTPS+Transport+Reference
由于它在文档上非常混乱,我要补充一点,您需要的只是https:tls-key-store
中正确配置的https:connector
元素,类似于:
<https:connector name="httpsConnector">
<https:tls-key-store path="keystore.jks"
keyPassword="${jks.password}" storePassword="${jks.password}" />
</https:connector>
此示例假定您的密钥库文件名为keystore.jks
,并且在类路径中可用。此外,它假定您已声明jks.password
属性,并且您对密钥库和密钥使用相同的密码。 根据自己的情况调整。