TedeeApiTokenInterceptor.java
package org.sanmibuh.tedee.lock.infrastructure.secondary;
import java.io.IOException;
import java.time.Clock;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpRequest;
import org.springframework.http.client.ClientHttpRequestExecution;
import org.springframework.http.client.ClientHttpRequestInterceptor;
import org.springframework.http.client.ClientHttpResponse;
@RequiredArgsConstructor
final class TedeeApiTokenInterceptor implements ClientHttpRequestInterceptor {
private static final String API_TOKEN_HEADER = "api_token";
private final TedeeApiTokenGenerator generator;
private final Clock clock;
@Override
public ClientHttpResponse intercept(
final HttpRequest request, final byte[] body, final ClientHttpRequestExecution execution)
throws IOException {
request.getHeaders().set(API_TOKEN_HEADER, generator.generate(clock.millis()));
return execution.execute(request, body);
}
}