繁体   English   中英

生成SOAP Java客户端时wsimport认证的问题

[英]Issue with wsimport authentication when generating SOAP Java client

我使用以下命令为Java生成Web服务客户端文件。

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

以下是auth.txt

HTTP://用户名:密码@ IP:端口//路径

但是, password具有特殊字符,如abcw@sdsds 所以我得到了错误的格式错误。 所以我已经编码了像abcw%40sdsds这样的密码。 但是,现在由于解析错误密码而导致身份验证错误。

有什么方法可以处理这种情况?

在线检查后,我发现此错误实际上已在最新版本中修复。 但是我仍然遇到同样的问题。 您可以参考以下链接以获取有关该错误的信息。

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

因此,我最终使用Java中的HTTP客户端通过NTLM身份验证提出了自定义HTTP请求。

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获得了上述解决方案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM