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 回答