From 0d243e7f5dc593cdc6e0608bb52cd635f8fc6982 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期五, 19 九月 2025 11:59:44 +0800
Subject: [PATCH] 新需求
---
ycl-server/src/main/java/com/ycl/interceptor/YYFeignInterceptor.java | 45 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 44 insertions(+), 1 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/interceptor/YYFeignInterceptor.java b/ycl-server/src/main/java/com/ycl/interceptor/YYFeignInterceptor.java
index 4db9bd0..c9a594e 100644
--- a/ycl-server/src/main/java/com/ycl/interceptor/YYFeignInterceptor.java
+++ b/ycl-server/src/main/java/com/ycl/interceptor/YYFeignInterceptor.java
@@ -1,14 +1,57 @@
package com.ycl.interceptor;
+import com.alibaba.fastjson2.JSONObject;
+import com.ycl.feign.UYClient;
+import com.ycl.platform.domain.param.UY.UYTokenParam;
+import com.ycl.platform.domain.result.UY.UYLoginResult;
+import com.ycl.utils.redis.RedisCache;
import feign.RequestInterceptor;
import feign.RequestTemplate;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.data.redis.core.RedisTemplate;
+
+import java.util.concurrent.TimeUnit;
+
/**
* 浼樹簯璇锋眰鎷︽埅鍣�
*/
+@Slf4j
public class YYFeignInterceptor implements RequestInterceptor {
+ @Autowired
+ @Lazy
+ private UYClient uyClient;
+ @Autowired
+ private RedisCache redisCache;
+ @Value("${youYun.email}")
+ private String email;
+ @Value("${youYun.passwd}")
+ private String passwd;
+
@Override
public void apply(RequestTemplate requestTemplate) {
- requestTemplate.header("token", "auth");
+ boolean flag = requestTemplate.headers().containsKey("No-Need-To-Token");
+ if (!flag) {
+ String uyToken = redisCache.getCacheObject("UY_Token");
+ if (uyToken == null) {
+ uyToken = getToken();
+ }
+ requestTemplate.header("Cookie", "token=" + uyToken);
+ }
+ }
+
+ private String getToken() {
+ UYTokenParam param = new UYTokenParam();
+ param.setPasswd(passwd);
+ param.setEmail(email);
+ JSONObject jsonObject = uyClient.getToken(param);
+ UYLoginResult loginResult = jsonObject.getObject("data", UYLoginResult.class);
+ String token = loginResult.getToken();
+ redisCache.setCacheObject("Uy_Token", token, 3600, TimeUnit.SECONDS);
+ return token;
}
}
--
Gitblit v1.8.0