xucaiqin 1 сар өмнө
parent
commit
446f5010c1

+ 15 - 0
sckw-gateway/src/main/java/com/sckw/gateway/filter/AuthenticationFilter.java

@@ -93,6 +93,21 @@ public class AuthenticationFilter implements GlobalFilter, Ordered {
         String requestUri = request.getPath().value();
         /*1、非token校验接口放行*/
         if (EXCLUDEPATH.contains(requestUri)) {
+            Map<String, Object> tokenMap = EncryUtil.descryV2(Global.PRI_KEY, token);
+            if (tokenMap != null) {
+                Long userId = StringUtils.isNotBlank(tokenMap.get("userId")) ? NumberUtils.parseLong(tokenMap.get("userId")) : null;
+                String key = Global.getFullUserLoginKey(systemType, userId);
+
+                String userInfoStr = RedissonUtils.getString(key);
+                LoginUserInfo loginUserInfo = StringUtils.isNotBlank(userInfoStr) ? com.alibaba.fastjson.JSON.parseObject(userInfoStr, LoginUserInfo.class) : null;
+                if (Objects.nonNull(loginUserInfo)) {
+                    loginUserInfo.setClientType(clientType);
+                    String loginEntStr = RedissonUtils.getString(Global.getFullUserEntKey(loginUserInfo.getEntId()));
+                    LoginEntInfo loginEntInfo = StringUtils.isNotBlank(loginEntStr) ? com.alibaba.fastjson.JSON.parseObject(loginEntStr, LoginEntInfo.class) : null;
+                    ServerWebExchange build = buildNewExchange(exchange,loginUserInfo,loginEntInfo);
+                    return chain.filter(build);
+                }
+            }
             return chain.filter(exchange);
         }