package com.hmall.api.config;
import com.hmall.common.utils.UserContext;
import feign.Logger;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.context.annotation.Bean;
public class DefaultFeignConfig { // 千万不要在这个类上面加@Configuration注解,因为这个配置类会在其它启动类上的注解引用
@Bean
public Logger.Level feignLogLevel() {
return Logger.Level.BASIC;
}
@Bean
public RequestInterceptor userInfoInterceptor() {
return new RequestInterceptor() {
@Override
public void apply(RequestTemplate requestTemplate) {
Long userId = UserContext.getUser();
// 为什么上面这行代码可以从UserContext里取用户信息,因为之前的服务中的信息是网关给的,这个时候请求头里是带了用户信息的
if(userId != null) {
requestTemplate.header("user-info", userId.toString());
}
}
};
}
}
标签:feign,UserContext,用户,gateway,传递,Bean,import,Logger,public
From: https://www.cnblogs.com/twinkler/p/18171257