7

サービスを提供する基本的な SOAP サービス エンドポイント (実際には SAP ECC) があります。私は SOAPUI 4.5 を使用してサービスをテストしましたが、HTTP Auth を使用して正常に動作し、物事の見た目からプリエンプティブです。アウトバウンドの「Authorization:Basic BASE64」が表示され、サービスは適切に応答します。

私は今、これを Java に取り込もうとしています。私はSAAJのアプローチをとろうと思いました:

 SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
 SOAPConnection soapConnection = soapConnectionFactory.createConnection();
 String url = "http://SAPSERVER:8006/sap/bc/srt/rfc/sap/z_lookup_generic_prototype/300/z_user/z_user_binding";
 SOAPMessage message = messageFactory.createMessage();
 SOAPMessage response = connection.call(message, url);

しかし、HTTP 認証を追加する方法が見つかりません。SAAJ が SOAP メッセージを制御する手段を提供していると思いますが、認証を追加するにはどうすればよいですか? 検討する価値のある代替手段はありますか?

4

1 に答える 1

19

このページから: https://www.coderanch.com/how-to/java/WebServicesHowTo

SOAPMessage message = ...
String authorization = new sun.misc.BASE64Encoder().encode((username+":"+password).getBytes());
MimeHeaders hd = message.getMimeHeaders();
hd.addHeader("Authorization", "Basic " + authorization);
于 2013-08-09T08:40:10.673 に答える