Browse Source

登录和鉴权

wangliang 5 years ago
parent
commit
85f1bf03fc

+ 2 - 2
themis-backend/src/main/java/com/qmth/themis/backend/api/TBUserController.java

@@ -97,11 +97,11 @@ public class TBUserController {
         //生成token
         //生成token
         String token = JwtUtil.sign(user.getId(), platform, deviceId, authDto.getRoleEnum());
         String token = JwtUtil.sign(user.getId(), platform, deviceId, authDto.getRoleEnum());
         //添加用户缓存
         //添加用户缓存
-        RedisUtil.setUser(user.getId(), platform, user);
+        RedisUtil.setUser(user.getId(), user);
         //添加用户会话缓存
         //添加用户会话缓存
         String sessionId = SessionUtil.digest(user.getId(), authDto.getRoleEnum().name(), platform.getSource());
         String sessionId = SessionUtil.digest(user.getId(), authDto.getRoleEnum().name(), platform.getSource());
         TBSession tbSession = tbSessionService.saveSessionInfo(sessionId, user.getId(), authDto.getRoleEnum().name(), platform.name(), platform.getSource(), deviceId, token, request.getLocalAddr());
         TBSession tbSession = tbSessionService.saveSessionInfo(sessionId, user.getId(), authDto.getRoleEnum().name(), platform.name(), platform.getSource(), deviceId, token, request.getLocalAddr());
-        RedisUtil.setUserSession(sessionId, platform, tbSession);
+        RedisUtil.setUserSession(sessionId, tbSession);
 
 
         Map<String, Object> map = new HashMap<>();
         Map<String, Object> map = new HashMap<>();
         map.put(SystemConstant.TOKEN, token);
         map.put(SystemConstant.TOKEN, token);

+ 3 - 3
themis-backend/src/main/java/com/qmth/themis/backend/interceptor/AuthInterceptor.java

@@ -99,11 +99,11 @@ public class AuthInterceptor implements HandlerInterceptor {
             TBUser tbUser = (TBUser) RedisUtil.getUser(userId);
             TBUser tbUser = (TBUser) RedisUtil.getUser(userId);
             if (Objects.isNull(tbUser)) {
             if (Objects.isNull(tbUser)) {
                 tbUser = tbUserService.getById(userId);
                 tbUser = tbUserService.getById(userId);
-                RedisUtil.setUser(tbUser.getId(), platform, tbUser);
+                RedisUtil.setUser(tbUser.getId(), tbUser);
             }
             }
-            //还剩5分钟刷新缓存
+            //还剩5分钟刷新会话缓存
             if (Objects.nonNull(expireTime) && (expireTime.getTime() - System.currentTimeMillis()) <= SystemConstant.REFRESH_EXPIRE_TIME) {
             if (Objects.nonNull(expireTime) && (expireTime.getTime() - System.currentTimeMillis()) <= SystemConstant.REFRESH_EXPIRE_TIME) {
-                RedisUtil.refreshUserSession(sessionId, platform);
+                RedisUtil.refreshUserSession(sessionId);
             }
             }
         }
         }
         AuthDto authDto = (AuthDto) EhcacheUtil.get(SystemConstant.AUTH_CACHE, userId);
         AuthDto authDto = (AuthDto) EhcacheUtil.get(SystemConstant.AUTH_CACHE, userId);

+ 3 - 2
themis-business/src/main/java/com/qmth/themis/business/constant/SystemConstant.java

@@ -3,7 +3,6 @@ package com.qmth.themis.business.constant;
 import com.qmth.themis.common.enums.Platform;
 import com.qmth.themis.common.enums.Platform;
 import com.qmth.themis.common.enums.Source;
 import com.qmth.themis.common.enums.Source;
 
 
-import java.util.Date;
 import java.util.Objects;
 import java.util.Objects;
 
 
 /**
 /**
@@ -49,7 +48,9 @@ public class SystemConstant {
     public static final long JWT_PC_EXPIRE_TIME = 60L * 1440L * 1000L;//过期时间24小时
     public static final long JWT_PC_EXPIRE_TIME = 60L * 1440L * 1000L;//过期时间24小时
     public static final long JWT_PAD_EXPIRE_TIME = 60L * 1440L * 1000L;//过期时间24小时
     public static final long JWT_PAD_EXPIRE_TIME = 60L * 1440L * 1000L;//过期时间24小时
     public static final long JWT_PHONE_EXPIRE_TIME = 60L * 43200L * 1000L;//过期时间30天
     public static final long JWT_PHONE_EXPIRE_TIME = 60L * 43200L * 1000L;//过期时间30天
-    public static final int REFRESH_EXPIRE_TIME = 60 * 5;//过期剩余时间5分钟
+    public static final long REDIS_EXPIRE_TIME = 60L * 1440L;//过期时间24小时
+    public static final long REDIS_REFRESH_EXPIRE_TIME = 60L * 60L;//刷新时间1小时,理论上说24小时还不睡觉也已经快不行了
+    public static final long REFRESH_EXPIRE_TIME = 60L * 5L;//过期剩余时间5分钟
 
 
     /**
     /**
      * 获取过期时间
      * 获取过期时间

+ 6 - 50
themis-business/src/main/java/com/qmth/themis/business/util/RedisUtil.java

@@ -2,11 +2,8 @@ package com.qmth.themis.business.util;
 
 
 import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.constant.SystemConstant;
-import com.qmth.themis.common.enums.Platform;
-import com.qmth.themis.common.enums.Source;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.RedisTemplate;
 
 
-import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeUnit;
 
 
 /**
 /**
@@ -68,23 +65,7 @@ public class RedisUtil {
      */
      */
     public static void setUser(Long userId, Object o) {
     public static void setUser(Long userId, Object o) {
         RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class);
         RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class);
-        redisTemplate.opsForValue().set(SystemConstant.USER + userId, o, SystemConstant.JWT_WEB_EXPIRE_TIME, TimeUnit.SECONDS);
-    }
-
-    /**
-     * 设置用户信息
-     *
-     * @param userId
-     * @param platform
-     * @param o
-     */
-    public static void setUser(Long userId, Platform platform, Object o) {
-        RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class);
-        if (Objects.equals(platform.getSource(), Source.Phone.name())) {
-            redisTemplate.opsForValue().set(SystemConstant.USER + userId, o, SystemConstant.JWT_PAD_EXPIRE_TIME, TimeUnit.SECONDS);
-        } else {
-            redisTemplate.opsForValue().set(SystemConstant.USER + userId, o, SystemConstant.expireTime(platform), TimeUnit.SECONDS);
-        }
+        redisTemplate.opsForValue().set(SystemConstant.USER + userId, o, SystemConstant.REDIS_EXPIRE_TIME, TimeUnit.SECONDS);
     }
     }
 
 
     /**
     /**
@@ -94,22 +75,7 @@ public class RedisUtil {
      */
      */
     public static void refreshUser(Long userId) {
     public static void refreshUser(Long userId) {
         RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class);
         RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class);
-        redisTemplate.expire(SystemConstant.USER + userId, SystemConstant.JWT_WEB_EXPIRE_TIME, TimeUnit.SECONDS);
-    }
-
-    /**
-     * 刷新用户缓存
-     *
-     * @param userId
-     * @param platform
-     */
-    public static void refreshUser(Long userId, Platform platform) {
-        RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class);
-        if (Objects.equals(platform.getSource(), Source.Phone.name())) {
-            redisTemplate.expire(SystemConstant.USER + userId, SystemConstant.JWT_PAD_EXPIRE_TIME, TimeUnit.SECONDS);
-        } else {
-            redisTemplate.expire(SystemConstant.USER + userId, SystemConstant.expireTime(platform), TimeUnit.SECONDS);
-        }
+        redisTemplate.expire(SystemConstant.USER + userId, SystemConstant.REDIS_REFRESH_EXPIRE_TIME, TimeUnit.SECONDS);
     }
     }
 
 
     /**
     /**
@@ -127,31 +93,21 @@ public class RedisUtil {
      * 设置用户session信息
      * 设置用户session信息
      *
      *
      * @param sessionId
      * @param sessionId
-     * @param platform
      * @param o
      * @param o
      */
      */
-    public static void setUserSession(String sessionId, Platform platform, Object o) {
+    public static void setUserSession(String sessionId, Object o) {
         RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class);
         RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class);
-        if (Objects.equals(platform.getSource(), Source.Phone.name())) {
-            redisTemplate.opsForValue().set(SystemConstant.SESSION + sessionId, o, SystemConstant.JWT_PAD_EXPIRE_TIME, TimeUnit.SECONDS);
-        } else {
-            redisTemplate.opsForValue().set(SystemConstant.SESSION + sessionId, o, SystemConstant.expireTime(platform), TimeUnit.SECONDS);
-        }
+        redisTemplate.opsForValue().set(SystemConstant.SESSION + sessionId, o, SystemConstant.REDIS_EXPIRE_TIME, TimeUnit.SECONDS);
     }
     }
 
 
     /**
     /**
      * 刷新用户session缓存
      * 刷新用户session缓存
      *
      *
      * @param sessionId
      * @param sessionId
-     * @param platform
      */
      */
-    public static void refreshUserSession(String sessionId, Platform platform) {
+    public static void refreshUserSession(String sessionId) {
         RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class);
         RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class);
-        if (Objects.equals(platform.getSource(), Source.Phone.name())) {
-            redisTemplate.expire(SystemConstant.SESSION + sessionId, SystemConstant.JWT_PAD_EXPIRE_TIME, TimeUnit.SECONDS);
-        } else {
-            redisTemplate.expire(SystemConstant.SESSION + sessionId, SystemConstant.expireTime(platform), TimeUnit.SECONDS);
-        }
+        redisTemplate.expire(SystemConstant.SESSION + sessionId, SystemConstant.REDIS_REFRESH_EXPIRE_TIME, TimeUnit.SECONDS);
     }
     }
 
 
     /**
     /**