From e3465870ee8c48e7105e6a4d8451b26091fcc2ae Mon Sep 17 00:00:00 2001 From: fanpeng Date: Sat, 20 Aug 2022 21:26:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Etoken=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=8B=E4=BB=B6=E7=9B=91=E5=90=AC=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dev33/satoken/listener/SaTokenEventCenter.java | 14 +++++++++++++- .../cn/dev33/satoken/listener/SaTokenListener.java | 10 +++++++++- .../listener/SaTokenListenerForConsolePrint.java | 12 ++++++++++++ .../satoken/listener/SaTokenListenerForSimple.java | 5 +++++ .../main/java/cn/dev33/satoken/stp/StpLogic.java | 3 +++ 5 files changed, 42 insertions(+), 2 deletions(-) diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenEventCenter.java b/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenEventCenter.java index cd708942..7a83da71 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenEventCenter.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenEventCenter.java @@ -214,5 +214,17 @@ public class SaTokenEventCenter { listener.doLogoutSession(id); } } - + + /** + * 每次renew timeout时触发 + * + * @param tokenValue + * @param loginId + * @param timeout + */ + public static void doRenewTimeout(String tokenValue, Object loginId, long timeout) { + for (SaTokenListener listener : listenerList) { + listener.doRenewTimeout(tokenValue, loginId, timeout); + } + } } diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListener.java b/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListener.java index 4fdff910..2912241f 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListener.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListener.java @@ -69,5 +69,13 @@ public interface SaTokenListener { * @param id SessionId */ public void doLogoutSession(String id); - + + /** + * 执行renew超时时间操作的时触发 + * + * @param tokenValue + * @param loginId + * @param timeout + */ + public void doRenewTimeout(String tokenValue, Object loginId, long timeout); } diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerForConsolePrint.java b/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerForConsolePrint.java index c13229c2..b4940075 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerForConsolePrint.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerForConsolePrint.java @@ -78,6 +78,18 @@ public class SaTokenListenerForConsolePrint implements SaTokenListener { println("Session[" + id + "]注销成功"); } + /** + * 每次更新超时时间后触发 + * + * @param tokenValue + * @param loginId + * @param timeout + */ + @Override + public void doRenewTimeout(String tokenValue, Object loginId, long timeout) { + println("帐号[" + loginId + "]更新超时时间成功!"); + } + /** * 日志输出的前缀 */ diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerForSimple.java b/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerForSimple.java index 3ad3b7a6..9f999067 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerForSimple.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerForSimple.java @@ -52,4 +52,9 @@ public class SaTokenListenerForSimple implements SaTokenListener { } + @Override + public void doRenewTimeout(String tokenValue, Object loginId, long timeout) { + + } + } diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java index 985dfa55..9f1377e7 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java @@ -1219,6 +1219,9 @@ public class StpLogic { if(isOpenActivityCheck()) { dao.updateTimeout(splicingKeyLastActivityTime(tokenValue), timeout); } + + // 通知更新超时事件 + SaTokenEventCenter.doRenewTimeout(tokenValue, loginId, timeout); } // ------------------- 角色验证操作 -------------------