social-service-client/src/main/java/org/gcube/social_networking/social_networking_client_li.../filter/AuthorizationFilter.java

33 lines
1.2 KiB
Java

package org.gcube.social_networking.social_networking_client_library.filter;
import java.io.IOException;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientRequestFilter;
import org.gcube.common.authorization.library.provider.AccessTokenProvider;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Authorization filter for the jersey client.
*/
public class AuthorizationFilter implements ClientRequestFilter{
private final static String AUTH_TOKEN_PARAMETER = "Authorization";
private final static String LEGACY_AUTH_TOKEN_PARAMETER = "gcube-token";
private static Logger logger = LoggerFactory.getLogger(AuthorizationFilter.class);
@Override
public void filter(ClientRequestContext original) throws IOException {
logger.debug("Adding token to the request " + original.getUri());
String token = AccessTokenProvider.instance.get();
String legacyToken = SecurityTokenProvider.instance.get();
if (token != null)
original.getHeaders().add(AUTH_TOKEN_PARAMETER, " Bearer " + token);
if (legacyToken != null)
original.getHeaders().add(LEGACY_AUTH_TOKEN_PARAMETER, legacyToken);
}
}