异常统一继承SaTokenException、SaSession的创建抽象到接口

This commit is contained in:
shengzhang
2021-02-04 21:10:45 +08:00
parent 10f0571ef2
commit b18b8a07b5
11 changed files with 35 additions and 13 deletions

View File

@@ -1,5 +1,7 @@
package cn.dev33.satoken.action;
import cn.dev33.satoken.session.SaSession;
/**
* sa-token逻辑代理接口
* <p>此接口将会代理框架内部的一些关键性逻辑,方便开发者进行按需重写</p>
@@ -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);
}

View File

@@ -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;
@@ -49,4 +50,13 @@ public class SaTokenActionDefaultImpl implements SaTokenAction {
return UUID.randomUUID().toString();
}
/**
* 根据 SessionId 创建一个 Session
*/
@Override
public SaSession createSession(String sessionId) {
return new SaSession(sessionId);
}
}

View File

@@ -113,7 +113,7 @@ public interface SaTokenDao {
* @param keyword 关键字
* @param start 开始处索引 (-1代表查询所有)
* @param size 获取数量
* @return sessionId集合
* @return 查询到的数据集合
*/
public List<String> searchData(String prefix, String keyword, int start, int size);

View File

@@ -7,7 +7,7 @@ import java.util.List;
* 一个异常:代表用户没有登录
* @author kong
*/
public class NotLoginException extends RuntimeException {
public class NotLoginException extends SaTokenException {
/**
* 序列化版本号

View File

@@ -8,7 +8,7 @@ import cn.dev33.satoken.stp.StpUtil;
* @author kong
*
*/
public class NotPermissionException extends RuntimeException {
public class NotPermissionException extends SaTokenException {
/**
* 序列化版本号

View File

@@ -8,7 +8,7 @@ import cn.dev33.satoken.stp.StpUtil;
* @author kong
*
*/
public class NotRoleException extends RuntimeException {
public class NotRoleException extends SaTokenException {
/**
* 序列化版本号

View File

@@ -1,7 +1,8 @@
package cn.dev33.satoken.exception;
/**
* sa-token框架内部逻辑发生错误抛出的异常 (自定义此异常可方便开发者在做全局异常处理时分辨异常类型)
* sa-token框架内部逻辑发生错误抛出的异常
* (自定义此异常可方便开发者在做全局异常处理时分辨异常类型)
*
* @author kong
*

View File

@@ -28,6 +28,8 @@ public class SaSession implements Serializable {
/** 此Session的所有挂载数据 */
private Map<String, Object> dataMap = new ConcurrentHashMap<String, Object>();
// ----------------------- 构建相关
/**
* 构建一个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相关
/**

View File

@@ -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;

View File

@@ -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;

View File

@@ -73,6 +73,11 @@
<version>5.5.4</version>
</dependency> -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.73</version>
</dependency>
</dependencies>