Базовая аутентификация Java SAAJ

У меня есть базовая конечная точка службы SOAP, на самом деле SAP ECC, представляющая службу. Я протестировал службу с использованием SOAPUI 4.5, и она работает нормально с HTTP-аутентификацией, упреждающей, судя по всему. Я вижу исходящее «Авторизация: 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, но как мне добавить аутентификацию? Есть ли альтернативы, которые стоит рассмотреть?


person Ben    schedule 11.06.2013    source источник


Ответы (1)


С этой страницы: 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);
person Floww    schedule 09.08.2013