package org.example.filters;
import info.magnolia.context.Context;
import info.magnolia.context.MgnlContext;
import java.io.IOException;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientRequestFilter;
import javax.ws.rs.ext.Provider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Interceptor for rest easy to handle authentication with an access token.
*/
@Provider
public class AuthenticationInterceptor implements ClientRequestFilter {
private static final Logger log = LoggerFactory.getLogger(SalesforceAuthenticationInterceptor.class);
@Override
public void filter(ClientRequestContext requestContext) throws IOException {
if (MgnlContext.hasInstance() && MgnlContext.hasAttribute("ACCESS_TOKEN", Context.APPLICATION_SCOPE)) {
requestContext.getHeaders().putSingle("Authorization",
"OAuth " + MgnlContext.getAttribute("ACCESS_TOKEN", Context.APPLICATION_SCOPE));
log.trace("Authorization : {}",
(String) MgnlContext.getAttribute("ACCESS_TOKEN", Context.APPLICATION_SCOPE));
}
}
}