Я пытаюсь вызвать веб-сервис SOAP, используя обработчики с базовой авторизацией, но каким-то образом API отвечает несанкционированным 401.
@Override
public boolean handleMessage(SOAPMessageContext context) {
Boolean outboundProperty = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
if (outboundProperty.booleanValue()) {
String authString = parameter.getUser() + ":" + parameter.getPassword();
try {
Map<String, List<String>> headers = (Map<String, List<String>>)
context.get(MessageContext.HTTP_REQUEST_HEADERS);
if (null == headers) {
headers = new HashMap<String, List<String>>();
}
headers.put("Authorization", Collections.singletonList(
"Basic " + new String(Base64.encode(authString.getBytes()))));
} catch(Exception e) {
log4j.error(e.getMessage(), e);
}
}
return outboundProperty;
}
Когда я использую интерфейс SOAP и вручную добавляю заголовок авторизации (значение из кода во времяотладка) затем я получаю ответ от конечной точки, но с помощью кода это не удается на данный момент.
Любые указатели были бы действительно полезны.Спасибо