首页 > 解决方案 > 具有基本身份验证的 Spring Integration 出站网关

问题描述

我看过一些例子,但我无法使用该解决方案

问题是我必须将基本身份验证信息作为配置的一部分传递

下面的当前请求...你能告诉我如何添加基本身份验证

<bean id="WSACaoedelen" class="nl.bIntnActiCallback">
        <constructor-arg index="0" value="http://enst.nl/kkm/Kkmervice/toest"></constructor-arg>
        <constructor-arg index="1" value="${KKSEURL}"></constructor-arg>
    </bean> 
    <int:chain input-channel="kkChannel" output-channel="dest-channel">
        <ws:header-enricher>       
            <ws:soap-action value="http://knst.nl/kkm/KkService/toest"/>
        </ws:header-enricher>           
        <ws:outbound-gateway uri="${GATEWAY}" request-callback="WSACaoedelen"/>
    </int:chain>

标签: spring-integration

解决方案


基本身份验证的要点是它是 HTTP 传输的一部分。

您需要考虑使用HttpComponentsMessageSender带有注入的setCredentials(). 在你的情况下,我猜你可以使用UsernamePasswordCredentials

<bean id="httpComponentsMessageSender" class="org.springframework.ws.transport.http.HttpComponentsMessageSender">
    <property name="credentials">
        <bean class="org.apache.http.auth.UsernamePasswordCredentials">
            <constructor-arg value="userName"/>
            <constructor-arg value="password"/>
        </bean>
    </property>
</bean>
...
<ws:outbound-gateway uri="${GATEWAY}" message-sender="httpComponentsMessageSender"/>

推荐阅读