异常统一继承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; package cn.dev33.satoken.action;
import cn.dev33.satoken.session.SaSession;
/** /**
* sa-token逻辑代理接口 * sa-token逻辑代理接口
* <p>此接口将会代理框架内部的一些关键性逻辑,方便开发者进行按需重写</p> * <p>此接口将会代理框架内部的一些关键性逻辑,方便开发者进行按需重写</p>
@@ -16,5 +18,11 @@ public interface SaTokenAction {
*/ */
public String createToken(Object loginId, String loginKey); 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 java.util.UUID;
import cn.dev33.satoken.SaTokenManager; import cn.dev33.satoken.SaTokenManager;
import cn.dev33.satoken.session.SaSession;
import cn.dev33.satoken.util.SaTokenConsts; import cn.dev33.satoken.util.SaTokenConsts;
import cn.dev33.satoken.util.SaTokenInsideUtil; import cn.dev33.satoken.util.SaTokenInsideUtil;
@@ -48,5 +49,14 @@ public class SaTokenActionDefaultImpl implements SaTokenAction {
// 默认还是uuid // 默认还是uuid
return UUID.randomUUID().toString(); 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 keyword 关键字
* @param start 开始处索引 (-1代表查询所有) * @param start 开始处索引 (-1代表查询所有)
* @param size 获取数量 * @param size 获取数量
* @return sessionId集合 * @return 查询到的数据集合
*/ */
public List<String> searchData(String prefix, String keyword, int start, int size); public List<String> searchData(String prefix, String keyword, int start, int size);

View File

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

View File

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

View File

@@ -28,6 +28,8 @@ public class SaSession implements Serializable {
/** 此Session的所有挂载数据 */ /** 此Session的所有挂载数据 */
private Map<String, Object> dataMap = new ConcurrentHashMap<String, Object>(); private Map<String, Object> dataMap = new ConcurrentHashMap<String, Object>();
// ----------------------- 构建相关
/** /**
* 构建一个Session对象 * 构建一个Session对象
*/ */
@@ -36,7 +38,6 @@ public class SaSession implements Serializable {
/** /**
* 构建一个Session对象 * 构建一个Session对象
*
* @param id Session的id * @param id Session的id
*/ */
public SaSession(String id) { public SaSession(String id) {
@@ -45,8 +46,7 @@ public class SaSession implements Serializable {
} }
/** /**
* 获取此会话id * 获取此Session的id
*
* @return 此会话的id * @return 此会话的id
*/ */
public String getId() { public String getId() {
@@ -55,13 +55,13 @@ public class SaSession implements Serializable {
/** /**
* 返回当前会话创建时间 * 返回当前会话创建时间
*
* @return 时间戳 * @return 时间戳
*/ */
public long getCreateTime() { public long getCreateTime() {
return createTime; return createTime;
} }
// ----------------------- TokenSign相关 // ----------------------- TokenSign相关
/** /**

View File

@@ -45,7 +45,7 @@ public class SaSessionCustomUtil {
public static SaSession getSessionById(String sessionId, boolean isCreate) { public static SaSession getSessionById(String sessionId, boolean isCreate) {
SaSession session = SaTokenManager.getSaTokenDao().getSession(getSessionKey(sessionId)); SaSession session = SaTokenManager.getSaTokenDao().getSession(getSessionKey(sessionId));
if (session == null && isCreate) { if (session == null && isCreate) {
session = new SaSession(getSessionKey(sessionId)); session = SaTokenManager.getSaTokenAction().createSession(sessionId);
SaTokenManager.getSaTokenDao().saveSession(session, SaTokenManager.getConfig().getTimeout()); SaTokenManager.getSaTokenDao().saveSession(session, SaTokenManager.getConfig().getTimeout());
} }
return session; return session;

View File

@@ -451,8 +451,6 @@ public class StpLogic {
} }
// =================== session相关 =================== // =================== session相关 ===================
/** /**
@@ -464,7 +462,7 @@ public class StpLogic {
public SaSession getSessionBySessionId(String sessionId, boolean isCreate) { public SaSession getSessionBySessionId(String sessionId, boolean isCreate) {
SaSession session = SaTokenManager.getSaTokenDao().getSession(sessionId); SaSession session = SaTokenManager.getSaTokenDao().getSession(sessionId);
if(session == null && isCreate) { if(session == null && isCreate) {
session = new SaSession(sessionId); session = SaTokenManager.getSaTokenAction().createSession(sessionId);
SaTokenManager.getSaTokenDao().saveSession(session, getConfig().getTimeout()); SaTokenManager.getSaTokenDao().saveSession(session, getConfig().getTimeout());
} }
return session; return session;

View File

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