Проблема с аутентификацией wsimport при создании клиента SOAP Java - PullRequest
0 голосов
/ 20 сентября 2018

Я использую следующую команду для генерации файлов клиента веб-сервиса для Java.

wsimport -keep http://test.com/test?wsdl -xauthfile auth.txt

Следующее было в auth.txt

http://user:password@ip:port//path

Но у password были специальные символы, такие как abcw@sdsds.Так что я получаю неправильный формат ошибки.Поэтому я закодировал пароль как abcw%40sdsds.Но теперь произошла ошибка аутентификации из-за неправильного пароля из-за разбора.

Есть ли способы справиться с этим сценарием?

1 Ответ

0 голосов
/ 27 сентября 2018

После проверки в Интернете я обнаружил, что эта ошибка на самом деле была исправлена ​​в последней версии.Но я все еще получаю ту же проблему.Вы можете обратиться к следующим ссылкам для получения информации об ошибке.

https://github.com/javaee/metro-jax-ws/issues/1101

Итак, я наконец-то сделал пользовательский HTTP-запрос с аутентификацией NTLM с использованием HTTP-клиента в Java.

String bodyAsString = ""; //Provide Input SOAP Message
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(AuthScope.ANY,
new NTCredentials("UserName", "Password", "Host", "Domain"));
HttpClient client = HttpClientBuilder.create().setDefaultCredentialsProvider(credsProvider).build();
HttpPost post = new HttpPost("URL"); //Provide Request URL
try 
{
   StringEntity input = new StringEntity(bodyAsString);
   input.setContentType("text/xml; charset=utf-8");
   post.setEntity(input);
   post.setHeader("Content-type", "text/xml; charset=utf-8");
   post.setHeader("SOAPAction", ""); //Provide Soap action

   org.apache.http.HttpResponse response = client.execute(post);
   HttpEntity responseEntity = response.getEntity();
   if (responseEntity != null) 
   {
      return EntityUtils.toString(responseEntity);
   }
}

Я получил вышеуказанное решение по следующей ссылке на github https://github.com/sujithtw/soapwithntlm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...