0 Tage Serie
java / intermediate
Snippet

Injizieren von Auth-Headern mit RestTemplate-Interceptors

Interceptors im RestTemplate ermöglichen es, Logik global auf alle ausgehenden HTTP-Anfragen anzuwenden. Dies ist ideal, um Authentifizierungs-Token hinzuzufügen, Request-Payloads zu loggen oder benutzerdefinierte Fehlerlogik zu handhaben, ohne dies bei jedem Aufruf zu wiederholen.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class AuthInterceptor implements ClientHttpRequestInterceptor {
@Override
public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
request.getHeaders().add("Authorization", "Bearer " + getToken());
return execution.execute(request, body);
}
private String getToken() { return "secret-token"; }
}
@Bean
public RestTemplate restTemplate() {
RestTemplate restTemplate = new RestTemplate();
restTemplate.setInterceptors(Collections.singletonList(new AuthInterceptor()));
return restTemplate;
}
spring
Erklärung
1
ClientHttpRequestInterceptor
Das Interface, um ausgehende clientseitige HTTP-Anfragen abzufangen und zu modifizieren.
2
execution.execute(request, body)
Setzt die Anfragekette fort, nachdem die Interceptor-Logik angewendet wurde.
3
setInterceptors(...)
Registriert die Liste der Interceptors, die von der RestTemplate-Instanz verwendet werden sollen.