From 4dc531fc2dcd6517fffa2e9760225f5705537258 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 19 七月 2024 20:11:27 +0800
Subject: [PATCH] 代码提交

---
 server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java |   44 +++++++++++++++++++++++++-------------------
 1 files changed, 25 insertions(+), 19 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java b/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
index 00d3a0d..5d72f5a 100644
--- a/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
+++ b/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.biz.zbom.model.zhongtai.ZTConstants;
 import com.doumee.config.annotation.UserLoginRequired;
 import com.doumee.config.annotation.LoginRequired;
 import com.doumee.core.constants.ResponseStatus;
@@ -13,6 +14,7 @@
 import io.jsonwebtoken.JwtException;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -40,6 +42,12 @@
 
     @Autowired
     private RedisTemplate<String,Object> redisTemplate;
+
+    /**
+     * 鏄惁寮�鍙戣��
+     */
+    @Value("${debug_model}")
+    private Boolean isDebug;
 
     /**
      * 娣诲姞鎷︽埅鍣�
@@ -89,16 +97,15 @@
     public Boolean checkLogin(HttpServletRequest request, HttpServletResponse response){
         String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
         try {
-            //鍒ゆ柇Token鏄惁瓒呮椂
-            boolean expiration = JwtTokenUtil.isTokenExpired(token);
-            if (expiration) {
-                throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"闀挎椂闂存湭鎿嶄綔,璇烽噸鏂扮櫥褰�");
-            }
             //鑾峰彇璐﹀彿ID
             Long memberId = JwtTokenUtil.getJwtPayLoad(token).getUserId();
-            Integer userType = JwtTokenUtil.getJwtPayLoad(token).getUserType();
-            if(!Constants.equalsInteger(userType,Constants.ZERO)){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏃犺闂潈闄�");
+            String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.CUSTOMER+"_"+memberId);
+            if(StringUtils.isNotBlank(tokenRedis)){
+                if(!tokenRedis.equals(token)){
+                    throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"闀挎椂闂存湭鎿嶄綔,璇烽噸鏂扮櫥褰�");
+                }
+            }else{
+                throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"闀挎椂闂存湭鎿嶄綔,璇烽噸鏂扮櫥褰�");
             }
             Member member = dao.queryForObject(" select  *  from `member` where id  = ?  limit 1  ", new BeanPropertyRowMapper<>(Member.class),memberId );
             if(Objects.isNull(member)){
@@ -111,7 +118,7 @@
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳");
             }
             request.setAttribute(JwtTokenUtil.UserId_Name, memberId);
-            request.setAttribute(JwtTokenUtil.UserType, Constants.CUSTOMER);
+            request.setAttribute(JwtTokenUtil.UserType, ZTConstants.CUSTOMER);
             return true;
         } catch (IllegalArgumentException | JwtException e) {
             throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
@@ -121,16 +128,15 @@
     public Boolean checkPersonnelLogin(HttpServletRequest request, HttpServletResponse response){
         String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
         try {
-            //鍒ゆ柇Token鏄惁瓒呮椂
-            boolean expiration = JwtTokenUtil.isTokenExpired(token);
-            if (expiration) {
-                throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"闀挎椂闂存湭鎿嶄綔,璇烽噸鏂扮櫥褰�");
-            }
             //鑾峰彇璐﹀彿ID
             Long userId = JwtTokenUtil.getJwtPayLoad(token).getUserId();
-            Integer userType = JwtTokenUtil.getJwtPayLoad(token).getUserType();
-            if(!Constants.equalsInteger(userType,Constants.ONE)){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏃犺闂潈闄�");
+            String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.BUSINESS+"_"+userId);
+            if(StringUtils.isNotBlank(tokenRedis)){
+                if(!tokenRedis.equals(token)){
+                    throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"闀挎椂闂存湭鎿嶄綔,璇烽噸鏂扮櫥褰�");
+                }
+            }else{
+                throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"闀挎椂闂存湭鎿嶄綔,璇烽噸鏂扮櫥褰�");
             }
             Users users = dao.queryForObject(" select  *  from `users` where id  = ?  limit 1  ", new BeanPropertyRowMapper<>(Users.class),userId);
             if(Objects.isNull(users)){
@@ -139,11 +145,11 @@
             if(Constants.equalsInteger(users.getIsdeleted(),Constants.ONE)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳");
             }
-            if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
+            if(!StringUtils.equals(users.getStatus(),Constants.ONE+"")){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳");
             }
             request.setAttribute(JwtTokenUtil.UserId_Name, userId);
-            request.setAttribute(JwtTokenUtil.UserType, Constants.BUSINESS);
+            request.setAttribute(JwtTokenUtil.UserType, ZTConstants.BUSINESS);
             return true;
         } catch (IllegalArgumentException | JwtException e) {
             throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");

--
Gitblit v1.9.3