From b18b8a07b5cf476c2cee3edc3a3b49aceac6f958 Mon Sep 17 00:00:00 2001 From: shengzhang <2393584716@qq.com> Date: Thu, 4 Feb 2021 21:10:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=82=E5=B8=B8=E7=BB=9F=E4=B8=80=E7=BB=A7?= =?UTF-8?q?=E6=89=BFSaTokenException=E3=80=81SaSession=E7=9A=84=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=8A=BD=E8=B1=A1=E5=88=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/dev33/satoken/action/SaTokenAction.java | 8 ++++++++ .../dev33/satoken/action/SaTokenActionDefaultImpl.java | 10 ++++++++++ .../src/main/java/cn/dev33/satoken/dao/SaTokenDao.java | 2 +- .../cn/dev33/satoken/exception/NotLoginException.java | 2 +- .../satoken/exception/NotPermissionException.java | 2 +- .../cn/dev33/satoken/exception/NotRoleException.java | 2 +- .../cn/dev33/satoken/exception/SaTokenException.java | 3 ++- .../main/java/cn/dev33/satoken/session/SaSession.java | 8 ++++---- .../cn/dev33/satoken/session/SaSessionCustomUtil.java | 2 +- .../src/main/java/cn/dev33/satoken/stp/StpLogic.java | 4 +--- sa-token-demo-springboot/pom.xml | 5 +++++ 11 files changed, 35 insertions(+), 13 deletions(-) diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenAction.java b/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenAction.java index 5070cf41..76b0baac 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenAction.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenAction.java @@ -1,5 +1,7 @@ package cn.dev33.satoken.action; +import cn.dev33.satoken.session.SaSession; + /** * sa-token逻辑代理接口 *

此接口将会代理框架内部的一些关键性逻辑,方便开发者进行按需重写

@@ -16,5 +18,11 @@ public interface SaTokenAction { */ public String createToken(Object loginId, String loginKey); + /** + * 根据 SessionId 创建一个 Session + * @param sessionId Session的Id + * @return 创建后的Session + */ + public SaSession createSession(String sessionId); } diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java b/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java index 0f5def46..6c579b1b 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java @@ -3,6 +3,7 @@ package cn.dev33.satoken.action; import java.util.UUID; import cn.dev33.satoken.SaTokenManager; +import cn.dev33.satoken.session.SaSession; import cn.dev33.satoken.util.SaTokenConsts; import cn.dev33.satoken.util.SaTokenInsideUtil; @@ -48,5 +49,14 @@ public class SaTokenActionDefaultImpl implements SaTokenAction { // 默认,还是uuid return UUID.randomUUID().toString(); } + + + /** + * 根据 SessionId 创建一个 Session + */ + @Override + public SaSession createSession(String sessionId) { + return new SaSession(sessionId); + } } diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDao.java b/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDao.java index abba69ec..3d63073a 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDao.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDao.java @@ -113,7 +113,7 @@ public interface SaTokenDao { * @param keyword 关键字 * @param start 开始处索引 (-1代表查询所有) * @param size 获取数量 - * @return sessionId集合 + * @return 查询到的数据集合 */ public List searchData(String prefix, String keyword, int start, int size); diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotLoginException.java b/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotLoginException.java index afa36aee..33b17ab5 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotLoginException.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotLoginException.java @@ -7,7 +7,7 @@ import java.util.List; * 一个异常:代表用户没有登录 * @author kong */ -public class NotLoginException extends RuntimeException { +public class NotLoginException extends SaTokenException { /** * 序列化版本号 diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotPermissionException.java b/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotPermissionException.java index 472ef0b7..9b9e2c76 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotPermissionException.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotPermissionException.java @@ -8,7 +8,7 @@ import cn.dev33.satoken.stp.StpUtil; * @author kong * */ -public class NotPermissionException extends RuntimeException { +public class NotPermissionException extends SaTokenException { /** * 序列化版本号 diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotRoleException.java b/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotRoleException.java index 9cbd18c5..fe87c33c 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotRoleException.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotRoleException.java @@ -8,7 +8,7 @@ import cn.dev33.satoken.stp.StpUtil; * @author kong * */ -public class NotRoleException extends RuntimeException { +public class NotRoleException extends SaTokenException { /** * 序列化版本号 diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/exception/SaTokenException.java b/sa-token-core/src/main/java/cn/dev33/satoken/exception/SaTokenException.java index 8f5ee1b8..c7f40cfe 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/exception/SaTokenException.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/exception/SaTokenException.java @@ -1,7 +1,8 @@ package cn.dev33.satoken.exception; /** - * sa-token框架内部逻辑发生错误抛出的异常 (自定义此异常可方便开发者在做全局异常处理时分辨异常类型) + * sa-token框架内部逻辑发生错误抛出的异常 + * (自定义此异常可方便开发者在做全局异常处理时分辨异常类型) * * @author kong * diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/session/SaSession.java b/sa-token-core/src/main/java/cn/dev33/satoken/session/SaSession.java index 9dcabfab..d549e059 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/session/SaSession.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/session/SaSession.java @@ -28,6 +28,8 @@ public class SaSession implements Serializable { /** 此Session的所有挂载数据 */ private Map dataMap = new ConcurrentHashMap(); + // ----------------------- 构建相关 + /** * 构建一个Session对象 */ @@ -36,7 +38,6 @@ public class SaSession implements Serializable { /** * 构建一个Session对象 - * * @param id Session的id */ public SaSession(String id) { @@ -45,8 +46,7 @@ public class SaSession implements Serializable { } /** - * 获取此会话id - * + * 获取此Session的id * @return 此会话的id */ public String getId() { @@ -55,13 +55,13 @@ public class SaSession implements Serializable { /** * 返回当前会话创建时间 - * * @return 时间戳 */ public long getCreateTime() { return createTime; } + // ----------------------- TokenSign相关 /** diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/session/SaSessionCustomUtil.java b/sa-token-core/src/main/java/cn/dev33/satoken/session/SaSessionCustomUtil.java index c2f8e5e7..b49a3915 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/session/SaSessionCustomUtil.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/session/SaSessionCustomUtil.java @@ -45,7 +45,7 @@ public class SaSessionCustomUtil { public static SaSession getSessionById(String sessionId, boolean isCreate) { SaSession session = SaTokenManager.getSaTokenDao().getSession(getSessionKey(sessionId)); if (session == null && isCreate) { - session = new SaSession(getSessionKey(sessionId)); + session = SaTokenManager.getSaTokenAction().createSession(sessionId); SaTokenManager.getSaTokenDao().saveSession(session, SaTokenManager.getConfig().getTimeout()); } return session; 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 b328513a..54152485 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 @@ -451,8 +451,6 @@ public class StpLogic { } - - // =================== session相关 =================== /** @@ -464,7 +462,7 @@ public class StpLogic { public SaSession getSessionBySessionId(String sessionId, boolean isCreate) { SaSession session = SaTokenManager.getSaTokenDao().getSession(sessionId); if(session == null && isCreate) { - session = new SaSession(sessionId); + session = SaTokenManager.getSaTokenAction().createSession(sessionId); SaTokenManager.getSaTokenDao().saveSession(session, getConfig().getTimeout()); } return session; diff --git a/sa-token-demo-springboot/pom.xml b/sa-token-demo-springboot/pom.xml index 042315a9..2d90bbc1 100644 --- a/sa-token-demo-springboot/pom.xml +++ b/sa-token-demo-springboot/pom.xml @@ -73,6 +73,11 @@ 5.5.4 --> + + com.alibaba + fastjson + 1.2.73 +