From 12f2148030ed17f11330552c3cabe3b44f02264b Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Thu, 22 Apr 2021 12:43:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E8=BF=87=E6=9C=9F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/auth/filter/JWTFilter.java | 11 +++++++++-- .../java/io/dataease/auth/util/JWTUtils.java | 17 +++++++++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/backend/src/main/java/io/dataease/auth/filter/JWTFilter.java b/backend/src/main/java/io/dataease/auth/filter/JWTFilter.java index 62316b95a9..f7a4b6ea33 100644 --- a/backend/src/main/java/io/dataease/auth/filter/JWTFilter.java +++ b/backend/src/main/java/io/dataease/auth/filter/JWTFilter.java @@ -55,12 +55,19 @@ public class JWTFilter extends BasicHttpAuthenticationFilter { throw new AuthenticationException(expireMessage); } if (JWTUtils.needRefresh(authorization)){ + String oldAuthorization = authorization; authorization = refreshToken(request, response); + JWTUtils.removeTokenExpire(oldAuthorization); } + // 删除老的操作时间 + JWTUtils.removeTokenExpire(authorization); + // 设置新的操作时间 + JWTUtils.addTokenExpire(authorization); JWTToken token = new JWTToken(authorization); Subject subject = getSubject(request, response); // 提交给realm进行登入,如果错误他会抛出异常并被捕获 subject.login(token); + return true; } @@ -98,10 +105,10 @@ public class JWTFilter extends BasicHttpAuthenticationFilter { String password = user.getPassword(); // 删除老token操作时间 - JWTUtils.removeTokenExpire(token); + // JWTUtils.removeTokenExpire(token); String newToken = JWTUtils.sign(tokenInfo, password); // 记录新token操作时间 - JWTUtils.addTokenExpire(newToken); + // JWTUtils.addTokenExpire(newToken); JWTToken jwtToken = new JWTToken(newToken); this.getSubject(request, response).login(jwtToken); diff --git a/backend/src/main/java/io/dataease/auth/util/JWTUtils.java b/backend/src/main/java/io/dataease/auth/util/JWTUtils.java index 1b4026dede..9b171a936f 100644 --- a/backend/src/main/java/io/dataease/auth/util/JWTUtils.java +++ b/backend/src/main/java/io/dataease/auth/util/JWTUtils.java @@ -20,9 +20,9 @@ public class JWTUtils { // token过期时间1min (过期会自动刷新续命 目的是避免一直都是同一个token ) - private static final long EXPIRE_TIME = 5*60*1000; + private static final long EXPIRE_TIME = 1*60*1000; // 登录间隔时间10min 超过这个时间强制重新登录 - private static final long Login_Interval = 30*60*1000; + private static final long Login_Interval = 10*60*1000; /** @@ -81,8 +81,17 @@ public class JWTUtils { public static boolean loginExpire(String token){ Long now = System.currentTimeMillis(); Long lastOperateTime = tokenLastOperateTime(token); - if (lastOperateTime == null) return true; - return now - lastOperateTime > Login_Interval; + boolean isExpire = false; + if (lastOperateTime != null) { + isExpire = now - lastOperateTime > Login_Interval; + } + if (isExpire) { + System.out.println("-----------------------"); + System.out.println("-----上次操作时间是["+lastOperateTime+"]-----"); + System.out.println("-----当前操作时间是["+now+"]-----"); + System.out.println("-----------------------"); + } + return isExpire; } public static Date getExp(String token) {