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