Browse Source

Merge branch 'master' of http://git.tjyourong.com.cn/ctop/adsp-boot

syh 4 năm trước cách đây
mục cha
commit
cf28a65d93

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 814 - 784
jeecg-boot-base-common/src/main/java/org/jeecg/common/system/query/QueryGenerator.java


+ 31 - 0
jeecg-boot-base-common/src/main/java/org/jeecg/common/util/TokenUtils.java

@@ -35,6 +35,37 @@ public class TokenUtils {
     /**
      * 验证Token
      */
+    public static boolean verifyToken(String token, ISysBaseApi sysBaseAPI, RedisUtil redisUtil) {
+        if (StringUtils.isBlank(token)) {
+            throw new AuthenticationException("token不能为空!");
+        }
+
+        // 解密获得username,用于和数据库进行对比
+        String username = JwtUtil.getUsername(token);
+        if (username == null) {
+            throw new AuthenticationException("token非法无效!");
+        }
+
+        // 查询用户信息
+        LoginUser user = sysBaseAPI.getUserByName(username);
+        if (user == null) {
+            throw new AuthenticationException("用户不存在!");
+        }
+        // 判断用户状态
+        if (user.getStatus() != 1) {
+            throw new AuthenticationException("账号已被锁定,请联系管理员!");
+        }
+        // 校验token是否超时失效 & 或者账号密码是否错误
+        if (!jwtTokenRefresh(token, username, user.getPassword(), redisUtil)) {
+            throw new AuthenticationException("Token失效,请重新登录!");
+        }
+        return true;
+    }
+
+
+    /**
+     * 验证Token
+     */
     public static boolean verifyToken(HttpServletRequest request, ISysBaseApi sysBaseAPI, RedisUtil redisUtil) {
         log.info(" -- url --" + request.getRequestURL());
         String token = getTokenByRequest(request);

+ 36 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/config/jimureport/JimureportServiceImpl.java

@@ -0,0 +1,36 @@
+package org.jeecg.config.jimureport;
+
+import org.jeecg.common.system.api.ISysBaseApi;
+import org.jeecg.common.system.util.JwtUtil;
+import org.jeecg.common.util.RedisUtil;
+import org.jeecg.common.util.TokenUtils;
+import org.jeecg.modules.jmreport.api.JmReportTokenServiceI;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+
+@Component
+class JimureportServiceImpl implements JmReportTokenServiceI {
+    @Autowired
+    private ISysBaseApi sysBaseAPI;
+    @Autowired
+    @Lazy
+    private RedisUtil redisUtil;
+
+    @Override
+    public String getToken(HttpServletRequest request) {
+        return TokenUtils.getTokenByRequest(request);
+    }
+
+    @Override
+    public String getUsername(String token) {
+        return JwtUtil.getUsername(token);
+    }
+
+    @Override
+    public Boolean verifyToken(String token) {
+        return TokenUtils.verifyToken(token, sysBaseAPI, redisUtil);
+    }
+}