簡體   English   中英

使用WSS4J /駱駝cxf(Https)的基本身份驗證

[英]Basic Auth with WSS4J / camel cxf (Https)

對於SOAP Web服務,我有一個通過camel-cxfWSS4J進行PasswordDigest身份驗證的配置WSS4J

<camel-cxf:cxfEndpoint id="myService"
                       address="${ws.endpoint.address}"
                       serviceName="es:MyService"
                       wsdlURL="wsdl/myservice.wsdl"
                       endpointName="es:MyServicePort"
                       serviceClass="com.us.MyServiceEndpoint"
                       xmlns:es="http://us.com/services/MyService">
    <camel-cxf:inInterceptors>
        <bean class="org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JInInterceptor">
            <property name="properties">
                <map>
                    <entry key="action" value="UsernameToken"/>
                    <entry key="passwordType" value="PasswordDigest"/>
                    <entry key="passwordCallbackRef" value-ref="myPasswordCallback"/>
                </map>
            </property>
        </bean>
    </camel-cxf:inInterceptors>
</camel-cxf:cxfEndpoint>

我們要求為BASIC身份驗證啟用相同的資源-如何修改此配置才能做到這一點?

我更改了以下行並通過SOAP UI進行了測試:

                    <entry key="passwordType" value="PasswordText"/>

但是,結果是來自UsernameTokenValidator.java的SOAP錯誤:

  <soap:Fault>
     <faultcode>soap:Server</faultcode>
     <faultstring>These policy alternatives can not be satisfied: 
         {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}
         UsernameToken: Password hashing policy not enforced</faultstring>
  </soap:Fault>

如果有人在這里有一些指導,將不勝感激。

您正在混淆在CXF中配置WS-Security的兩種不同方式。

當您具有用於配置安全性的WS-SecurityPolicy時,將使用“ PolicyBasedWSS4JInInterceptor”。 您根本不需要實際添加它,因為CXF會自動將其添加到攔截器鏈中。 通過此處指定的配置標簽進行配置: http : //cxf.apache.org/docs/ws-securitypolicy.html 對於安全策略,將忽略您指定為“屬性”的配置標簽。

如果在這種情況下要通過策略配置安全性,則要支持純文本密碼,則需要刪除“ HashPassword”策略。

如果只想通過“操作”進行配置,則應該使用“ WSS4JInInterceptor”(基於策略的攔截器進行擴展)。

科爾姆

需要將WSS-PasswordType從PasswordText更改為PasswordDigest

暫無
暫無

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

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