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); //