我使用mule的HTTP组件连接到REST API,该API具有USERNAME和PASSWORD的基本身份验证。我使用HTTP组件的“HTTP设置”选项卡来提供身份验证详细信息,用户名和密码。但我觉得它不起作用。 我做错了吗?有没有更好的方法来调用具有基本身份验证的REST服务,如。
答案 0 :(得分: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出站端点中的http://username:password@host/yourpath
答案 1 :(得分:2)
当您通过Mule HTTP出站端点使用REST服务时,应将基本身份验证值设置为传出Mule消息中的Header属性。
<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>
希望这有帮助。
答案 2 :(得分:0)
HTTP outbound with basic authentication
感谢大家的回复!! 连接器上的用户名和密码适用于希望使用HTTP基本身份验证保护入站端点的时间。
当调用使用基本身份验证保护的外部服务时,您应该使用uri方法