You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
common-jaxrs-clients/src/main/java/org/gcube/common/calls/jaxrs/JaxRSRequestFilter.java

33 lines
925 B
Java

package org.gcube.common.calls.jaxrs;
import java.io.IOException;
import java.util.Collections;
import java.util.Map.Entry;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientRequestFilter;
import org.gcube.common.calls.Interceptors;
import org.gcube.common.calls.Request;
import org.gcube.common.scope.api.ScopeProvider;
public class JaxRSRequestFilter implements ClientRequestFilter {
private GcubeService service;
public JaxRSRequestFilter(GcubeService service) {
super();
this.service = service;
}
@Override
public void filter(final ClientRequestContext rc) throws IOException {
if (ScopeProvider.instance.get()!=null){
Request requestContext = Interceptors.executeRequestChain(service.call());
for (Entry<String, String> entry: requestContext.getHeaders()){
rc.getHeaders().put(entry.getKey(), Collections.singletonList((Object)entry.getValue()));
}
}
}
}