使用MULE的基本身份验证来使用REST服务

时间:2014-12-24 07:39:05

标签: mule integration mule-studio mule-component

我使用mule的HTTP组件连接到REST API,该API具有USERNAME和PASSWORD的基本身份验证。我使用HTTP组件的“HTTP设置”选项卡来提供身份验证详细信息,用户名和密码。但我觉得它不起作用。 我做错了吗?有没有更好的方法来调用具有基本身份验证的REST服务,如。

3 个答案:

答案 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方法