diff --git a/xdclass-common/src/main/java/net/jieyuu/config/AppConfig.java b/xdclass-common/src/main/java/net/jieyuu/config/AppConfig.java index 372012e..dbd64d2 100644 --- a/xdclass-common/src/main/java/net/jieyuu/config/AppConfig.java +++ b/xdclass-common/src/main/java/net/jieyuu/config/AppConfig.java @@ -1,6 +1,7 @@ package net.jieyuu.config; +import feign.RequestInterceptor; import lombok.Data; import org.redisson.Redisson; import org.redisson.api.RedissonClient; @@ -12,10 +13,14 @@ import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; @Configuration @Data -public class AppConfig { +public class AppConfig { @Value("${spring.redis.host}") private String redisHost; @@ -68,4 +73,30 @@ public class AppConfig { return redisTemplate; } + + /** + * feign 调用token丢失解决 + * 新增拦截器 + * + * @return + */ + @Bean + public RequestInterceptor requestInterceptor() { + + return template -> { + // 获取当前请求的属性信息 + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + + if (attributes != null) { + // 如果请求不为空,则记录请求头信息,并将请求头中的“token”值设置到新的请求模板的头部 + HttpServletRequest request = attributes.getRequest(); + if (null == request) { + return; + } + String token = request.getHeader("token"); + // 获取token并且设置到新的请求模板的头部 + template.header("token", token); + } + }; + } } diff --git a/xdclass-order-service/src/main/java/net/jieyuu/config/InterceptorConfig.java b/xdclass-order-service/src/main/java/net/jieyuu/config/InterceptorConfig.java index 7d1ca5c..07825eb 100644 --- a/xdclass-order-service/src/main/java/net/jieyuu/config/InterceptorConfig.java +++ b/xdclass-order-service/src/main/java/net/jieyuu/config/InterceptorConfig.java @@ -22,4 +22,4 @@ public class InterceptorConfig implements WebMvcConfigurer { WebMvcConfigurer.super.addInterceptors(registry); } -} +} \ No newline at end of file diff --git a/xdclass-product-service/src/main/java/net/jieyuu/config/InterceptorConfig.java b/xdclass-product-service/src/main/java/net/jieyuu/config/InterceptorConfig.java index b822aa7..1751a58 100644 --- a/xdclass-product-service/src/main/java/net/jieyuu/config/InterceptorConfig.java +++ b/xdclass-product-service/src/main/java/net/jieyuu/config/InterceptorConfig.java @@ -1,8 +1,10 @@ package net.jieyuu.config; + import lombok.extern.slf4j.Slf4j; import net.jieyuu.interceptor.LoginInterceptor; + import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; diff --git a/xdclass-user-service/src/main/java/net/jieyuu/config/InterceptorConfig.java b/xdclass-user-service/src/main/java/net/jieyuu/config/InterceptorConfig.java index ea1d39a..5ebc72d 100644 --- a/xdclass-user-service/src/main/java/net/jieyuu/config/InterceptorConfig.java +++ b/xdclass-user-service/src/main/java/net/jieyuu/config/InterceptorConfig.java @@ -3,7 +3,6 @@ package net.jieyuu.config; import lombok.extern.slf4j.Slf4j; import net.jieyuu.interceptor.LoginInterceptor; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;