簡體   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