J'essaie d'appeler un Webservice SOAP en utilisant des gestionnaires avec une autorisation de base, mais l'API répond avec 401 non autorisé.
@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;
}
Lorsque j'utilise l'interface SOAP et que j'ajoute manuellement l'en-tête d'autorisation (valeur du code pendant le débogage), je reçois une réponse du point de terminaison, mais en utilisant le code, cela échoue pour l'instant.
Tout conseil serait très utile. Merci de votre compréhension.