Skip to content

Instantly share code, notes, and snippets.

@ashimjk
Created February 22, 2022 08:55
Show Gist options
  • Save ashimjk/342520bea9ba5ff5e6639037ab240552 to your computer and use it in GitHub Desktop.
Save ashimjk/342520bea9ba5ff5e6639037ab240552 to your computer and use it in GitHub Desktop.
Feign Forward Header Interceptor
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.context.annotation.Primary;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Objects;
@Component
public class ForwardHeadersFeignInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
if (Objects.nonNull(requestAttributes) && requestAttributes instanceof ServletRequestAttributes) {
HttpServletRequest servletRequest = ((ServletRequestAttributes) Objects.requireNonNull(requestAttributes))
.getRequest();
requestTemplate.header(HttpHeaders.AUTHORIZATION, servletRequest.getHeader(HttpHeaders.AUTHORIZATION));
}
requestTemplate.removeHeader(HttpHeaders.CONTENT_LENGTH);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment