common-gcube-calls/src/main/java/org/gcube/common/calls/interceptors/AuthorizationInterceptor.java

41 lines
1.2 KiB
Java
Raw Normal View History

package org.gcube.common.calls.interceptors;
2022-06-15 17:53:50 +02:00
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
import org.gcube.common.calls.Call;
import org.gcube.common.calls.Interceptor;
import org.gcube.common.calls.Request;
import org.gcube.common.calls.Response;
2022-06-15 17:53:50 +02:00
import org.gcube.common.security.providers.SecretManagerProvider;
import org.gcube.common.security.secrets.Secret;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class AuthorizationInterceptor implements Interceptor {
private Logger logger = LoggerFactory.getLogger(AuthorizationInterceptor.class);
@Override
public void handleRequest(Request request, Call call) {
2024-03-12 16:21:07 +01:00
Secret secret = SecretManagerProvider.get();
2020-11-17 15:33:38 +01:00
2022-06-15 17:53:50 +02:00
if (secret!=null) {
2020-11-17 15:33:38 +01:00
try {
2022-06-15 17:53:50 +02:00
Map<String, String> header = secret.getHTTPAuthorizationHeaders();
Objects.requireNonNull(header);
for (Entry<String, String> entry : header.entrySet()) {
request.addHeader(entry.getKey(), entry.getValue());
logger.trace("setting {} : {}", entry.getKey(), entry.getValue());
}
2020-11-17 15:33:38 +01:00
}catch (Exception e) {
2022-06-15 17:53:50 +02:00
logger.error("error setting header for secret",e);
2020-11-17 15:33:38 +01:00
}
2022-06-15 17:53:50 +02:00
} else logger.trace("secret is not set");
}
@Override
public void handleResponse(Response context, Call callContext) {}
}