From 7e960bc4a8f7bce4d8aad651b0ae76873f414440 Mon Sep 17 00:00:00 2001 From: zflzqy <1396954535@qq.com> Date: Tue, 13 Jun 2023 15:12:50 +0800 Subject: [PATCH] =?UTF-8?q?#5050=20=E7=A7=9F=E6=88=B7id=E5=92=8C=E7=99=BB?= =?UTF-8?q?=E5=BD=95token=E8=BF=9B=E8=A1=8C=E7=BB=91=E5=AE=9A=EF=BC=8C?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=85=88=E4=BD=BF=E7=94=A8=EF=BC=8C=E8=8B=A5?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=88=99=E4=BD=BF=E7=94=A8=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E4=BC=A0=E9=80=92=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/common/constant/CommonConstant.java | 1 + .../main/java/org/jeecg/common/util/TokenUtils.java | 2 ++ .../java/org/jeecg/config/shiro/ShiroConfig.java | 5 ++++- .../java/org/jeecg/config/shiro/ShiroRealm.java | 2 ++ .../org/jeecg/config/shiro/filters/JwtFilter.java | 13 +++++++++++++ .../message/handle/impl/EmailSendMsgHandle.java | 2 ++ .../modules/system/controller/LoginController.java | 7 +++++++ 7 files changed, 31 insertions(+), 1 deletion(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java index f263753355..6d2644d945 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java @@ -81,6 +81,7 @@ public interface CommonConstant { String PREFIX_USER_TOKEN = "prefix_user_token:"; // /** Token缓存时间:3600秒即一小时 */ // int TOKEN_EXPIRE_TIME = 3600; + String PREFIX_USER_TENANT = "prefix_user_tenat:"; /** 登录二维码 */ String LOGIN_QRCODE_PRE = "QRCODELOGIN:"; diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/TokenUtils.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/TokenUtils.java index 4b7a14d8f8..9eb96152af 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/TokenUtils.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/TokenUtils.java @@ -120,6 +120,8 @@ private static boolean jwtTokenRefresh(String token, String userName, String pas // 设置Toekn缓存有效时间 redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, newAuthorization); redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME * 2 / 1000); + // 刷新登录的token和租户id的绑定过期时间 + redisUtil.expire(CommonConstant.PREFIX_USER_TENANT+token,JwtUtil.EXPIRE_TIME * 2 / 1000); } return true; } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java index 2c957e1440..5b73208078 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java @@ -14,6 +14,7 @@ import org.crazycake.shiro.RedisClusterManager; import org.crazycake.shiro.RedisManager; import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.oConvertUtils; import org.jeecg.config.JeecgBaseConfig; import org.jeecg.config.shiro.filters.CustomShiroFilterFactoryBean; @@ -47,6 +48,8 @@ public class ShiroConfig { private LettuceConnectionFactory lettuceConnectionFactory; @Autowired private Environment env; + @Autowired + private RedisUtil redisUtil; @Resource private JeecgBaseConfig jeecgBaseConfig; @@ -154,7 +157,7 @@ public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) { Map filterMap = new HashMap(1); //如果cloudServer为空 则说明是单体 需要加载跨域配置【微服务跨域切换】 Object cloudServer = env.getProperty(CommonConstant.CLOUD_SERVER_KEY); - filterMap.put("jwt", new JwtFilter(cloudServer==null)); + filterMap.put("jwt", new JwtFilter(cloudServer==null,redisUtil)); shiroFilterFactoryBean.setFilters(filterMap); //