Добавление дайджест-аутентификации в запрос SOAP - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь добавить дайджест-аутентификацию (имя пользователя и пароль) к моему SOAP-запросу, который использует org.apache.cxf (3.3.2) для генерации классов. Я попытался добавить имя пользователя и пароль, используя BindingProvider , но безуспешно:

MyServiceGeneratedClass soapClient = new MyServiceGeneratedClass();
MyServicePort port = soapClient.getMyServicePort();
BindingProvider bindingProvider = (BindingProvider)port;
bindingProvider.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "mySecretUsername");
bindingProvider.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "mySecretPassword");

Сгенерированный запрос SOAP не содержит имя пользователя и пароль.

Есть идеи?

1 Ответ

0 голосов
/ 08 октября 2019

Похожий пост о Дайджест-аутентификации с Apache CXF

Может быть, это решение может работать и для вас:

MyService myService = new MyService("wsdl-url");
MyServicePort myServicePort = myService.getMyServicePort();

Client client = ClientProxy.getClient(myServicePort);
HTTPConduit http = (HTTPConduit) client.getConduit();

AuthorizationPolicy authPolicy = new AuthorizationPolicy();
authPolicy.setAuthorizationType("Digest");
authPolicy.setUserName("user");
authPolicy.setPassword("myPassword");
http.setAuthorization(authPolicy);

myServicePort.doSomething();
...