我正在使用 mule 的 HTTP 组件连接到具有 USERNAME 和 PASSWORD 的基本身份验证的 REST API。我使用 HTTP 组件的“HTTP 设置”选项卡来提供身份验证详细信息、用户名和密码。但我认为它不起作用。我做错什么了吗?有没有更好的方法来调用具有基本身份验证的 REST 服务。
问问题
2842 次
3 回答
2
以下是具有基本身份验证的 REST 服务示例:-
<mule-ss:security-manager>
<mule-ss:delegate-security-provider name="memory-provider" 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="your username" password="your password" authorities="ROLE_ADMIN" />
<ss:user name="your username2" password="your password2" authorities="ROLE_USER" />
</ss:user-service>
</ss:authentication-provider>
</ss:authentication-manager>
</spring:beans>
<flow name="MainService" doc:name="MainService">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" doc:name="HTTP">
<mule-ss:http-security-filter realm="realm" />
<mule-ss:authorization-filter requiredAuthorities="ROLE_ADMIN"/> <!-- Restrict a particular group of users -->
</http:inbound-endpoint>
<jersey:resources doc:name="REST">
<component class="com.test.services.schema.maindata.v1.Impl.MainDataImpl"/>
</jersey:resources>
</flow>
对于从 Mule 连接现有的外部 REST 服务,请使用:-http://username:password@host/yourpath
在 http 出站端点
于 2014-12-24T08:17:42.513 回答
2
当您通过 Mule HTTP 出站端点使用 REST 服务时,您应该将 Basic Authentication 值设置为传出 Mule 消息的标头属性。
<flow name="consume_rest">
.............
..........
<set-property propertyName="Authorization" value="Basic Authorization String combination of Username and password" />
<http:outbound-endpoint exchange-pattern="request-response" method="POST" responseTimeout="20000"
host="localhost" path="rest.path" port="Port number" />
.............
.............
</flow>
希望这可以帮助。
于 2014-12-24T15:19:29.773 回答
0
于 2014-12-29T06:59:05.313 回答