mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-10-21 19:17:25 +08:00
异常统一继承SaTokenException、SaSession的创建抽象到接口
This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -7,7 +7,7 @@ import java.util.List;
|
||||
* 一个异常:代表用户没有登录
|
||||
* @author kong
|
||||
*/
|
||||
public class NotLoginException extends RuntimeException {
|
||||
public class NotLoginException extends SaTokenException {
|
||||
|
||||
/**
|
||||
* 序列化版本号
|
||||
|
@@ -8,7 +8,7 @@ import cn.dev33.satoken.stp.StpUtil;
|
||||
* @author kong
|
||||
*
|
||||
*/
|
||||
public class NotPermissionException extends RuntimeException {
|
||||
public class NotPermissionException extends SaTokenException {
|
||||
|
||||
/**
|
||||
* 序列化版本号
|
||||
|
@@ -8,7 +8,7 @@ import cn.dev33.satoken.stp.StpUtil;
|
||||
* @author kong
|
||||
*
|
||||
*/
|
||||
public class NotRoleException extends RuntimeException {
|
||||
public class NotRoleException extends SaTokenException {
|
||||
|
||||
/**
|
||||
* 序列化版本号
|
||||
|
@@ -1,7 +1,8 @@
|
||||
package cn.dev33.satoken.exception;
|
||||
|
||||
/**
|
||||
* sa-token框架内部逻辑发生错误抛出的异常 (自定义此异常可方便开发者在做全局异常处理时分辨异常类型)
|
||||
* sa-token框架内部逻辑发生错误抛出的异常
|
||||
* (自定义此异常可方便开发者在做全局异常处理时分辨异常类型)
|
||||
*
|
||||
* @author kong
|
||||
*
|
||||
|
@@ -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相关
|
||||
|
||||
/**
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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>
|
||||
|
||||
|
Reference in New Issue
Block a user