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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class AuthInterceptor implements ClientHttpRequestInterceptor {@Overridepublic 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"; }}@Beanpublic 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.