解決spring cloud Feign遠端呼叫服務,新增headers解決攔截器攔截問題

exception發表於2019-01-19

使用spring cloud 做saas伺服器時,經常會通過Feign呼叫遠端服務。有時候我們的遠端服務可能做了某些許可權驗證。需要驗證header或者token什麼的。如果某沒有token,可能會被阻止呼叫。那如何新增token呢。如果每個方法都手動設定headers,那未免太麻煩。可以通過一個切面,自動幫我們新增請求header。

@Configuration
public class FeignConfiguration implements RequestInterceptor {

private final Logger logger = LoggerFactory.getLogger(getClass());

@Override
public void apply(RequestTemplate template) {
    ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
            .getRequestAttributes();
    HttpServletRequest request = attributes.getRequest();
    String authorization = request.getHeader("Authorization");

    template.header("Authorization", authorization);
}

}

相關文章