业务上需要用到模块间调用,然后由于鉴权原因不能直接访问,
去网上搜了方法,配置拦截,传递token,问题解决
@Configuration
public class FeignRequestInterceptor implements RequestInterceptor {
private static final String AUTHORIZATION_HEADER = "authorization";
@Override
public void apply(RequestTemplate template) {
Map<String,String> headMap=getHeaders(getHttpServletRequest());
template.header(AUTHORIZATION_HEADER, headMap.get(AUTHORIZATION_HEADER));
}
private HttpServletRequest getHttpServletRequest() {
try {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
} catch (Exception e) {
return null;
}
}
private Map<String, String> getHeaders(HttpServletRequest request) {
Map<String, String> map = new LinkedHashMap<>();