1

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

4

3 回答 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

具有基本身份验证的 HTTP 出站

谢谢大家回复!!连接器上的用户名和密码适用于您希望使用 HTTP 基本身份验证保护入站端点的情况。

调用使用基本身份验证保护的外部服务时,您应该使用 uri 方法

于 2014-12-29T06:59:05.313 回答