ApacheJwtAuthenticationStrategyHandler.java
package io.github.evisentin.wordpress.rest.client.adapter.apache.auth.jwt;
import io.github.evisentin.wordpress.rest.client.adapter.apache.auth.ApacheAuthenticationStrategyHandler;
import io.github.evisentin.wordpress.rest.client.domain.auth.WpJwtAuthenticationStrategy;
import io.github.evisentin.wordpress.rest.client.domain.auth.header.JwtAuthenticationHeaderProvider;
import lombok.NonNull;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
public class ApacheJwtAuthenticationStrategyHandler
implements ApacheAuthenticationStrategyHandler<WpJwtAuthenticationStrategy> {
private final JwtAuthenticationHeaderProvider provider;
public ApacheJwtAuthenticationStrategyHandler(final @NonNull CloseableHttpClient authHttpClient, final @NonNull String apiUrl) {
this.provider = new JwtAuthenticationHeaderProvider(new ApacheJwtTokenClient(authHttpClient, apiUrl));
}
@Override
public String authenticateTyped(final @NonNull WpJwtAuthenticationStrategy strategy) {
return provider.createAuthorizationHeader(strategy);
}
@Override
public Class<WpJwtAuthenticationStrategy> supports() {
return WpJwtAuthenticationStrategy.class;
}
}