Для SOAP веб-службы, у меня есть рабочий пример конфигурации для PasswordDigest
аутентификации через camel-cxf
и WSS4J
:Basic Auth с WSS4J/верблюжьего CXF (Https)
<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"/>
Однако результат является ошибкой SOAP из UsernameTokenValidator.java
:
<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>
Если кто-то имеет некоторые рекомендации здесь будет понятно, ,
Не смотря на это, спасибо Кольму. – vikingsteve