From 2a57a16c9b54e23050a4fa534abb5ebbb6e846a8 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期一, 05 八月 2024 16:03:14 +0800 Subject: [PATCH] feign获取token完善 --- ycl-server/src/main/java/com/ycl/interceptor/YYFeignInterceptor.java | 42 +++++++++++++++++++++++++++++++++++++++++- 1 files changed, 41 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..b2337c8 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,54 @@ 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.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); + log.info("璇锋眰token鏁版嵁鏍煎紡" + jsonObject); + redisCache.setCacheObject("Uy_Token",jsonObject.toJSONString(),3600, TimeUnit.SECONDS); + return "1"; } } -- Gitblit v1.8.0