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
+