From 6987b5015e9324e73f2ea850bcef3bdd316ff031 Mon Sep 17 00:00:00 2001 From: jieyuu <645634619@qq.com> Date: Wed, 4 Sep 2024 15:01:16 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3feign=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E8=BF=9C=E7=A8=8Btoken=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/jieyuu/config/AppConfig.java | 33 ++++++++++++++++++- .../net/jieyuu/config/InterceptorConfig.java | 2 +- .../net/jieyuu/config/InterceptorConfig.java | 2 ++ .../net/jieyuu/config/InterceptorConfig.java | 1 - 4 files changed, 35 insertions(+), 3 deletions(-) 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;