簡體   English   中英

從Spring集成向soap請求添加基本身份驗證

[英]Adding basic authentication to soap request from spring integration

我想從Spring集成向SOAP Web服務添加基本認證(http認證)。 我正在按照以下方法進行身份驗證:

<bean id="httpComponentsMessageSender" 
    class="org.springframework.ws.transport.http.CommonsHttpMessageSender">
    <property name="credentials">
        <bean class="org.apache.commons.httpclient.UsernamePasswordCredentials">
            <constructor-arg value="userName" />
            <constructor-arg value="*******" />
        </bean>
    </property>
</bean>

<int-ws:outbound-gateway id="uniqueId"
    request-channel="requestServiceChannel" reply-channel="replyChannel"
    uri="end point url" message-sender="httpComponentsMessageSender"
    marshaller="ServiceMarshaller" unmarshaller="ServiceMarshaller">
</int-ws:outbound-gateway>

但我收到此錯誤: org.springframework.ws.soap.client.SoapFaultClientException: Internal Error

是否可以通過向其添加基本身份驗證來對Soap Web服務進行身份驗證?

我終於找到了解決方案,這是解決方案

<bean id="apacheHttpClientParams" class="org.apache.commons.httpclient.params.HttpClientParams">
        <property name="authenticationPreemptive" value="true" />
        <property name="connectionManagerClass"
            value="org.apache.commons.httpclient.MultiThreadedHttpConnectionManager" />
    </bean>

    <bean id="apacheHttpClient" class="org.apache.commons.httpclient.HttpClient">
        <constructor-arg ref="apacheHttpClientParams" />
    </bean>

    <bean id="credentials"
        class="org.apache.commons.httpclient.UsernamePasswordCredentials">
        <constructor-arg value="userName" />
        <constructor-arg value="password" />
    </bean>

    <bean id="authentication"
        class="org.springframework.ws.transport.http.CommonsHttpMessageSender">
        <constructor-arg ref="apacheHttpClient"></constructor-arg>
        <property name="credentials" ref="credentials" />
    </bean>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM