在我的Camel(2.13)流程中,我想使用Camel-CXF调用Web服务。 使用NTLM保护Web服务。我确实发现thaat CXF本身支持NTLM,但我在Camel-CXF上找不到任何东西。我当然尝试了参数用户名和密码,但是没有用。 Ik看起来像Camel-CXF并不支持它。 关于如何解决这个问题的任何想法?
我使用java6所以我认为我不需要jcifs。
罗尔德
答案 0 :(得分:0)
<cxf:cxfEndpoint id="sharepointQueryEndpoint"
address="http://yourhostwithpathtowsdl/_vti_bin/search.asmx"
serviceClass="com.somewhere.special.generated.QueryServiceSoap"
endpointName="ssp:SecureConnection"
xmlns:ssp="http://microsoft.com/webservices/OfficeServer/QueryService"
>
<cxf:properties>
<entry key="dataFormat" value="POJO"/>
<entry key="loggingFeatureEnabled" value="true" />
</cxf:properties>
<cxf:inInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
</cxf:inInterceptors>
<cxf:outInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
</cxf:outInterceptors>
</cxf:cxfEndpoint>
<http:conduit name="{http://microsoft.com/webservices/OfficeServer/QueryService}SecureConnection.http-conduit">
<http:client
AllowChunking="false"
MaxRetransmits="11"
Connection="Keep-Alive"
ReceiveTimeout="60000"
CacheControl="No-Cache"
/>
<http:authorization>
<sec:UserName>Domain\Username</sec:UserName>
<sec:Password>Password</sec:Password>
<sec:Authorization>NTLM</sec:Authorization>
</http:authorization>
</http:conduit>
cxfEndpoint配置中的属性serviceClass指向由wsdl2java生成的接口。enter code here
注意:从基于Windows的计算机运行此配置时,它无法正常工作。在握手期间,它将使用当前登录用户的凭据替换http-conduit中配置的用户名/密码。
有关详细信息,请参阅Can Java's 'single sign-on' (use credentials from 'Credential Manager') on Windows be disabled?