Spring Boot RestTemplate Basic-Authentifizierung mit RestTemplateBuilder

Im Frühjahr Starten, die ich versuche zu schaffen, eine RestTemplate die Verwendung der Standardauthentifizierung mit

@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
    builder.basicAuthorization("username", "password");
    RestTemplate template = builder.build();
    return template;
}

Ich dann Spritzen Sie das RestTemplate in meinem service-Klasse als

@Autowired
private RestTemplate restTemplate;

Aber, meine Anträge mit einem 401 unauthorized-exception:

Caused by: org.springframework.web.client.HttpClientErrorException: 401 Unauthorized

Mit einem anderen REST-Client (Briefträger) die Anfragen auf die gleiche URL erfolgreich, so nehme ich die basic-Authentifizierung nicht richtig funktioniert. Aus der debug-Ausgabe sieht es aus, als ob die authentication header ist nicht gesetzt. Was diese Arbeit machen?

  • gehen Sie zu Debuggen und zu sehen, ob es setzt die header richtig, wäre meine Vermutung, Sie haben mehr resttemplate im spring-Kontext.
  • Es ist nur eine RestTemplate im Frühjahr Kontext.
  • teilen Sie Ihre client-code..Wie Sie das senden der Anfrage
  • Das problem ist Ihre Konfiguration, die basicAuthorization ist im Grunde eine factory-Methode für eine neue RestTemplateBuilder aber Sie sind nicht mit der neu erzeugten Instanz. Tun return builder.basicAuthorization("username", "password").build(); anstelle von dem, was Sie haben jetzt (oder Wiederverwendung der neu erstellten Instanz).
InformationsquelleAutor J Kurz | 2017-08-14
Schreibe einen Kommentar