如何在 Mule 中公开安全 rest/soap 服务,需要最好和最简单的方法
How to Exposing secure rest/soap service in Mule, require best and simple approach
在我的流程中,我有很多 HTTP Rest API 调用,我使用了适合内部 api 调用的密钥库(如下所示)。现在我需要将 rest/soap 服务公开给外部 api。这是保护 mule api 的最简单且最好的方法。我正在使用 Mule 3.5.1 版本。
<https:connector name="HTTP_HTTPS" doc:name="HTTP-HTTPS"
cookieSpec="netscape" receiveBacklog="0" receiveBufferSize="0"
sendBufferSize="0" socketSoLinger="0" validateConnections="false"
clientSoTimeout="10000" serverSoTimeout="10000" enableCookies="true">
<https:tls-key-store path="cer/check.jks"
keyPassword="abc" storePassword="abc" />
</https:connector>
<flow name="service" doc:name="service">
<https:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8085" doc:name="HTTP" connector-ref="HTTP_HTTPS" responseTransformer-refs="ReponseProperty"/>
<byte-array-to-string-transformer doc:name="Byte Array to String"/>
<logger message="***Invoke****#[payload]" level="INFO" doc:name="Logger"/>
<jersey:resources doc:name="REST">
<component class="com.services.CallImpl"/>
<jersey:exception-mapper class="com.util.JerseyExceptionMapper"/>
</jersey:resources>
<byte-array-to-string-transformer doc:name="Byte Array to String"/>
因此外部 api 调用不应干扰其他 mule 服务。
提前致谢。
如果你想要简单的方法,基本身份验证就在那里,它非常简单,但它是基于传输层的,但是很容易实现
参考:-http://confluex.com/blog/http-inbound-endpoint-basic-authentication/
,
您还可以使用 oauth 2.0 来保护您需要 验证 令牌[=33] 的服务=] 在客户可以访问您的休息服务之前
参考:- https://developer.mulesoft.com/docs/display/current/Creating+an+OAuth+2.0a+Web+Service+Provider
和
http://ricston.com/blog/oauth-server-mule/
你也可以参考:- https://developer.mulesoft.com/docs/display/current/Mule+STS+OAuth+2.0a+Example+Application
其他选项是您的 Mule JWT(JSON Web Token) api,您需要在其中生成令牌并验证它以访问您的服务..
参考:- http://jwt.io/
但是在这里你需要做很多Java编码来生成令牌并验证它
在我的流程中,我有很多 HTTP Rest API 调用,我使用了适合内部 api 调用的密钥库(如下所示)。现在我需要将 rest/soap 服务公开给外部 api。这是保护 mule api 的最简单且最好的方法。我正在使用 Mule 3.5.1 版本。
<https:connector name="HTTP_HTTPS" doc:name="HTTP-HTTPS"
cookieSpec="netscape" receiveBacklog="0" receiveBufferSize="0"
sendBufferSize="0" socketSoLinger="0" validateConnections="false"
clientSoTimeout="10000" serverSoTimeout="10000" enableCookies="true">
<https:tls-key-store path="cer/check.jks"
keyPassword="abc" storePassword="abc" />
</https:connector>
<flow name="service" doc:name="service">
<https:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8085" doc:name="HTTP" connector-ref="HTTP_HTTPS" responseTransformer-refs="ReponseProperty"/>
<byte-array-to-string-transformer doc:name="Byte Array to String"/>
<logger message="***Invoke****#[payload]" level="INFO" doc:name="Logger"/>
<jersey:resources doc:name="REST">
<component class="com.services.CallImpl"/>
<jersey:exception-mapper class="com.util.JerseyExceptionMapper"/>
</jersey:resources>
<byte-array-to-string-transformer doc:name="Byte Array to String"/>
因此外部 api 调用不应干扰其他 mule 服务。 提前致谢。
如果你想要简单的方法,基本身份验证就在那里,它非常简单,但它是基于传输层的,但是很容易实现
参考:-http://confluex.com/blog/http-inbound-endpoint-basic-authentication/ ,
您还可以使用 oauth 2.0 来保护您需要 验证 令牌[=33] 的服务=] 在客户可以访问您的休息服务之前
参考:- https://developer.mulesoft.com/docs/display/current/Creating+an+OAuth+2.0a+Web+Service+Provider
和
http://ricston.com/blog/oauth-server-mule/
你也可以参考:- https://developer.mulesoft.com/docs/display/current/Mule+STS+OAuth+2.0a+Example+Application
其他选项是您的 Mule JWT(JSON Web Token) api,您需要在其中生成令牌并验证它以访问您的服务..
参考:- http://jwt.io/
但是在这里你需要做很多Java编码来生成令牌并验证它