使用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);
}
}