refactor: 重构所有 rpc 组件的 SaTokenContext 上下文读写策略 & 删除二级上下文模块
This commit is contained in:
+9
-11
@@ -15,11 +15,11 @@
|
||||
*/
|
||||
package cn.dev33.satoken.servlet.util;
|
||||
|
||||
import cn.dev33.satoken.context.SaTokenContextForThreadLocalStorage;
|
||||
import cn.dev33.satoken.context.SaTokenContextForThreadLocalStorage.Box;
|
||||
import cn.dev33.satoken.SaManager;
|
||||
import cn.dev33.satoken.context.model.SaRequest;
|
||||
import cn.dev33.satoken.context.model.SaResponse;
|
||||
import cn.dev33.satoken.context.model.SaStorage;
|
||||
import cn.dev33.satoken.context.model.SaTokenContextModelBox;
|
||||
import cn.dev33.satoken.fun.SaFunction;
|
||||
import cn.dev33.satoken.servlet.model.SaRequestForServlet;
|
||||
import cn.dev33.satoken.servlet.model.SaResponseForServlet;
|
||||
@@ -45,14 +45,14 @@ public class SaTokenContextUtil {
|
||||
SaRequest req = new SaRequestForServlet(request);
|
||||
SaResponse res = new SaResponseForServlet(response);
|
||||
SaStorage stg = new SaStorageForServlet(request);
|
||||
SaTokenContextForThreadLocalStorage.setBox(req, res, stg);
|
||||
SaManager.getSaTokenContext().setContext(req, res, stg);
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除当前上下文
|
||||
*/
|
||||
public static void clearContext() {
|
||||
SaTokenContextForThreadLocalStorage.clearBox();
|
||||
SaManager.getSaTokenContext().clearContext();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -71,11 +71,11 @@ public class SaTokenContextUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前 Box
|
||||
* 获取当前 ModelBox
|
||||
* @return /
|
||||
*/
|
||||
public static Box getBox() {
|
||||
return SaTokenContextForThreadLocalStorage.getBoxNotNull();
|
||||
public static SaTokenContextModelBox getModelBox() {
|
||||
return SaManager.getSaTokenContext().getModelBox();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -83,8 +83,7 @@ public class SaTokenContextUtil {
|
||||
* @return /
|
||||
*/
|
||||
public static HttpServletRequest getRequest() {
|
||||
Box box = SaTokenContextForThreadLocalStorage.getBoxNotNull();
|
||||
return (HttpServletRequest) box.getRequest().getSource();
|
||||
return (HttpServletRequest) getModelBox().getRequest().getSource();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -92,8 +91,7 @@ public class SaTokenContextUtil {
|
||||
* @return /
|
||||
*/
|
||||
public static HttpServletResponse getResponse() {
|
||||
Box box = SaTokenContextForThreadLocalStorage.getBoxNotNull();
|
||||
return (HttpServletResponse) box.getResponse().getSource();
|
||||
return (HttpServletResponse) getModelBox().getResponse().getSource();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+3
-3
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
package cn.dev33.satoken.jboot;
|
||||
|
||||
import cn.dev33.satoken.context.SaTokenContext;
|
||||
import cn.dev33.satoken.context.SaTokenContextForReadOnly;
|
||||
import cn.dev33.satoken.context.model.SaRequest;
|
||||
import cn.dev33.satoken.context.model.SaResponse;
|
||||
import cn.dev33.satoken.context.model.SaStorage;
|
||||
@@ -28,7 +28,7 @@ import io.jboot.web.controller.JbootControllerContext;
|
||||
/**
|
||||
* Sa-Token 上线文处理器 [Jboot 版本实现]
|
||||
*/
|
||||
public class SaTokenContextForJboot implements SaTokenContext {
|
||||
public class SaTokenContextForJboot implements SaTokenContextForReadOnly {
|
||||
|
||||
public SaTokenContextForJboot() {
|
||||
// 重写路由匹配算法
|
||||
@@ -63,6 +63,6 @@ public class SaTokenContextForJboot implements SaTokenContext {
|
||||
|
||||
@Override
|
||||
public boolean isValid() {
|
||||
return SaTokenContext.super.isValid();
|
||||
return JbootControllerContext.get() != null;
|
||||
}
|
||||
}
|
||||
|
||||
+4
-3
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
package cn.dev33.satoken.jfinal;
|
||||
|
||||
import cn.dev33.satoken.context.SaTokenContext;
|
||||
import cn.dev33.satoken.context.SaTokenContextForReadOnly;
|
||||
import cn.dev33.satoken.context.model.SaRequest;
|
||||
import cn.dev33.satoken.context.model.SaResponse;
|
||||
import cn.dev33.satoken.context.model.SaStorage;
|
||||
@@ -27,7 +27,7 @@ import cn.dev33.satoken.strategy.SaStrategy;
|
||||
/**
|
||||
* Sa-Token 上线文处理器 [Jfinal 版本实现]
|
||||
*/
|
||||
public class SaTokenContextForJfinal implements SaTokenContext {
|
||||
public class SaTokenContextForJfinal implements SaTokenContextForReadOnly {
|
||||
|
||||
public SaTokenContextForJfinal() {
|
||||
// 重写路由匹配算法
|
||||
@@ -62,6 +62,7 @@ public class SaTokenContextForJfinal implements SaTokenContext {
|
||||
|
||||
@Override
|
||||
public boolean isValid() {
|
||||
return SaTokenContext.super.isValid();
|
||||
return SaControllerContext.get() != null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
-5
@@ -15,11 +15,11 @@
|
||||
*/
|
||||
package cn.dev33.satoken.reactor.context;
|
||||
|
||||
import cn.dev33.satoken.context.SaTokenContextForThreadLocalStorage;
|
||||
import cn.dev33.satoken.context.SaTokenContextForThreadLocalStorage.Box;
|
||||
import cn.dev33.satoken.SaManager;
|
||||
import cn.dev33.satoken.context.model.SaRequest;
|
||||
import cn.dev33.satoken.context.model.SaResponse;
|
||||
import cn.dev33.satoken.context.model.SaStorage;
|
||||
import cn.dev33.satoken.context.model.SaTokenContextModelBox;
|
||||
import cn.dev33.satoken.fun.SaRetGenericFunction;
|
||||
import cn.dev33.satoken.reactor.model.SaRequestForReactor;
|
||||
import cn.dev33.satoken.reactor.model.SaResponseForReactor;
|
||||
@@ -42,14 +42,14 @@ public class SaReactorSyncHolder {
|
||||
SaRequest request = new SaRequestForReactor(exchange.getRequest());
|
||||
SaResponse response = new SaResponseForReactor(exchange.getResponse());
|
||||
SaStorage storage = new SaStorageForReactor(exchange);
|
||||
SaTokenContextForThreadLocalStorage.setBox(request, response, storage);
|
||||
SaManager.getSaTokenContext().setContext(request, response, storage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 在同步上下文清除 ServerWebExchange
|
||||
*/
|
||||
public static void clearContext() {
|
||||
SaTokenContextForThreadLocalStorage.clearBox();
|
||||
SaManager.getSaTokenContext().clearContext();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -57,7 +57,7 @@ public class SaReactorSyncHolder {
|
||||
* @return /
|
||||
*/
|
||||
public static ServerWebExchange getExchange() {
|
||||
Box box = SaTokenContextForThreadLocalStorage.getBoxNotNull();
|
||||
SaTokenContextModelBox box = SaManager.getSaTokenContext().getModelBox();
|
||||
return (ServerWebExchange)box.getStorage().getSource();
|
||||
}
|
||||
|
||||
|
||||
+5
-5
@@ -15,11 +15,11 @@
|
||||
*/
|
||||
package cn.dev33.satoken.reactor.context;
|
||||
|
||||
import cn.dev33.satoken.context.SaTokenContextForThreadLocalStorage;
|
||||
import cn.dev33.satoken.context.SaTokenContextForThreadLocalStorage.Box;
|
||||
import cn.dev33.satoken.SaManager;
|
||||
import cn.dev33.satoken.context.model.SaRequest;
|
||||
import cn.dev33.satoken.context.model.SaResponse;
|
||||
import cn.dev33.satoken.context.model.SaStorage;
|
||||
import cn.dev33.satoken.context.model.SaTokenContextModelBox;
|
||||
import cn.dev33.satoken.fun.SaRetGenericFunction;
|
||||
import cn.dev33.satoken.reactor.model.SaRequestForReactor;
|
||||
import cn.dev33.satoken.reactor.model.SaResponseForReactor;
|
||||
@@ -42,14 +42,14 @@ public class SaReactorSyncHolder {
|
||||
SaRequest request = new SaRequestForReactor(exchange.getRequest());
|
||||
SaResponse response = new SaResponseForReactor(exchange.getResponse());
|
||||
SaStorage storage = new SaStorageForReactor(exchange);
|
||||
SaTokenContextForThreadLocalStorage.setBox(request, response, storage);
|
||||
SaManager.getSaTokenContext().setContext(request, response, storage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 在同步上下文清除 ServerWebExchange
|
||||
*/
|
||||
public static void clearContext() {
|
||||
SaTokenContextForThreadLocalStorage.clearBox();
|
||||
SaManager.getSaTokenContext().clearContext();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -57,7 +57,7 @@ public class SaReactorSyncHolder {
|
||||
* @return /
|
||||
*/
|
||||
public static ServerWebExchange getExchange() {
|
||||
Box box = SaTokenContextForThreadLocalStorage.getBoxNotNull();
|
||||
SaTokenContextModelBox box = SaManager.getSaTokenContext().getModelBox();
|
||||
return (ServerWebExchange)box.getStorage().getSource();
|
||||
}
|
||||
|
||||
|
||||
+9
-11
@@ -15,11 +15,11 @@
|
||||
*/
|
||||
package cn.dev33.satoken.servlet.util;
|
||||
|
||||
import cn.dev33.satoken.context.SaTokenContextForThreadLocalStorage;
|
||||
import cn.dev33.satoken.context.SaTokenContextForThreadLocalStorage.Box;
|
||||
import cn.dev33.satoken.SaManager;
|
||||
import cn.dev33.satoken.context.model.SaRequest;
|
||||
import cn.dev33.satoken.context.model.SaResponse;
|
||||
import cn.dev33.satoken.context.model.SaStorage;
|
||||
import cn.dev33.satoken.context.model.SaTokenContextModelBox;
|
||||
import cn.dev33.satoken.fun.SaFunction;
|
||||
import cn.dev33.satoken.servlet.model.SaRequestForServlet;
|
||||
import cn.dev33.satoken.servlet.model.SaResponseForServlet;
|
||||
@@ -45,14 +45,14 @@ public class SaTokenContextUtil {
|
||||
SaRequest req = new SaRequestForServlet(request);
|
||||
SaResponse res = new SaResponseForServlet(response);
|
||||
SaStorage stg = new SaStorageForServlet(request);
|
||||
SaTokenContextForThreadLocalStorage.setBox(req, res, stg);
|
||||
SaManager.getSaTokenContext().setContext(req, res, stg);
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除当前上下文
|
||||
*/
|
||||
public static void clearContext() {
|
||||
SaTokenContextForThreadLocalStorage.clearBox();
|
||||
SaManager.getSaTokenContext().clearContext();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -71,11 +71,11 @@ public class SaTokenContextUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前 Box
|
||||
* 获取当前 ModelBox
|
||||
* @return /
|
||||
*/
|
||||
public static Box getBox() {
|
||||
return SaTokenContextForThreadLocalStorage.getBoxNotNull();
|
||||
public static SaTokenContextModelBox getModelBox() {
|
||||
return SaManager.getSaTokenContext().getModelBox();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -83,8 +83,7 @@ public class SaTokenContextUtil {
|
||||
* @return /
|
||||
*/
|
||||
public static HttpServletRequest getRequest() {
|
||||
Box box = SaTokenContextForThreadLocalStorage.getBoxNotNull();
|
||||
return (HttpServletRequest) box.getRequest().getSource();
|
||||
return (HttpServletRequest) getModelBox().getRequest().getSource();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -92,8 +91,7 @@ public class SaTokenContextUtil {
|
||||
* @return /
|
||||
*/
|
||||
public static HttpServletResponse getResponse() {
|
||||
Box box = SaTokenContextForThreadLocalStorage.getBoxNotNull();
|
||||
return (HttpServletResponse) box.getResponse().getSource();
|
||||
return (HttpServletResponse) getModelBox().getResponse().getSource();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
-12
@@ -21,7 +21,6 @@ import cn.dev33.satoken.apikey.SaApiKeyTemplate;
|
||||
import cn.dev33.satoken.apikey.loader.SaApiKeyDataLoader;
|
||||
import cn.dev33.satoken.config.SaTokenConfig;
|
||||
import cn.dev33.satoken.context.SaTokenContext;
|
||||
import cn.dev33.satoken.context.second.SaTokenSecondContextCreator;
|
||||
import cn.dev33.satoken.dao.SaTokenDao;
|
||||
import cn.dev33.satoken.httpauth.basic.SaHttpBasicTemplate;
|
||||
import cn.dev33.satoken.httpauth.basic.SaHttpBasicUtil;
|
||||
@@ -121,17 +120,6 @@ public class SaBeanInject {
|
||||
SaManager.setSaTokenContext(saTokenContext);
|
||||
}
|
||||
|
||||
/**
|
||||
* 注入二级上下文Bean
|
||||
*
|
||||
* @param saTokenSecondContextCreator 二级上下文创建器
|
||||
*/
|
||||
@Condition(onBean = SaTokenSecondContextCreator.class)
|
||||
@Bean
|
||||
public void setSaTokenContext(SaTokenSecondContextCreator saTokenSecondContextCreator) {
|
||||
SaManager.setSaTokenSecondContext(saTokenSecondContextCreator.create());
|
||||
}
|
||||
|
||||
/**
|
||||
* 注入侦听器Bean
|
||||
*
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
package cn.dev33.satoken.solon.model;
|
||||
|
||||
import cn.dev33.satoken.context.SaTokenContext;
|
||||
import cn.dev33.satoken.context.SaTokenContextForReadOnly;
|
||||
import cn.dev33.satoken.context.model.SaRequest;
|
||||
import cn.dev33.satoken.context.model.SaResponse;
|
||||
import cn.dev33.satoken.context.model.SaStorage;
|
||||
@@ -27,7 +27,7 @@ import org.noear.solon.core.handle.Context;
|
||||
* @author noear
|
||||
* @since 1.4
|
||||
*/
|
||||
public class SaContextForSolon implements SaTokenContext {
|
||||
public class SaContextForSolon implements SaTokenContextForReadOnly {
|
||||
|
||||
/**
|
||||
* 获取当前请求的Request对象
|
||||
|
||||
+8
-9
@@ -15,11 +15,11 @@
|
||||
*/
|
||||
package cn.dev33.satoken.solon.util;
|
||||
|
||||
import cn.dev33.satoken.context.SaTokenContextForThreadLocalStorage;
|
||||
import cn.dev33.satoken.context.SaTokenContextForThreadLocalStorage.Box;
|
||||
import cn.dev33.satoken.SaManager;
|
||||
import cn.dev33.satoken.context.model.SaRequest;
|
||||
import cn.dev33.satoken.context.model.SaResponse;
|
||||
import cn.dev33.satoken.context.model.SaStorage;
|
||||
import cn.dev33.satoken.context.model.SaTokenContextModelBox;
|
||||
import cn.dev33.satoken.fun.SaFunction;
|
||||
import cn.dev33.satoken.solon.model.SaRequestForSolon;
|
||||
import cn.dev33.satoken.solon.model.SaResponseForSolon;
|
||||
@@ -41,14 +41,14 @@ public class SaTokenContextUtil {
|
||||
SaRequest req = new SaRequestForSolon(ctx);
|
||||
SaResponse res = new SaResponseForSolon(ctx);
|
||||
SaStorage stg = new SaStorageForSolon(ctx);
|
||||
SaTokenContextForThreadLocalStorage.setBox(req, res, stg);
|
||||
SaManager.getSaTokenContext().setContext(req, res, stg);
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除当前上下文
|
||||
*/
|
||||
public static void clearContext() {
|
||||
SaTokenContextForThreadLocalStorage.clearBox();
|
||||
SaManager.getSaTokenContext().clearContext();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -66,11 +66,11 @@ public class SaTokenContextUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前 Box
|
||||
* 获取当前 ModelBox
|
||||
* @return /
|
||||
*/
|
||||
public static Box getBox() {
|
||||
return SaTokenContextForThreadLocalStorage.getBoxNotNull();
|
||||
public static SaTokenContextModelBox getModelBox() {
|
||||
return SaManager.getSaTokenContext().getModelBox();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -78,8 +78,7 @@ public class SaTokenContextUtil {
|
||||
* @return /
|
||||
*/
|
||||
public static Context getContext() {
|
||||
Box box = SaTokenContextForThreadLocalStorage.getBoxNotNull();
|
||||
return (Context) box.getStorage().getSource();
|
||||
return (Context) getModelBox().getStorage().getSource();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
-11
@@ -21,7 +21,6 @@ import cn.dev33.satoken.apikey.SaApiKeyTemplate;
|
||||
import cn.dev33.satoken.apikey.loader.SaApiKeyDataLoader;
|
||||
import cn.dev33.satoken.config.SaTokenConfig;
|
||||
import cn.dev33.satoken.context.SaTokenContext;
|
||||
import cn.dev33.satoken.context.second.SaTokenSecondContextCreator;
|
||||
import cn.dev33.satoken.dao.SaTokenDao;
|
||||
import cn.dev33.satoken.httpauth.basic.SaHttpBasicTemplate;
|
||||
import cn.dev33.satoken.httpauth.basic.SaHttpBasicUtil;
|
||||
@@ -115,16 +114,6 @@ public class SaBeanInject {
|
||||
SaManager.setSaTokenContext(saTokenContext);
|
||||
}
|
||||
|
||||
/**
|
||||
* 注入二级上下文Bean
|
||||
*
|
||||
* @param saTokenSecondContextCreator 二级上下文创建器
|
||||
*/
|
||||
@Autowired(required = false)
|
||||
public void setSaTokenContext(SaTokenSecondContextCreator saTokenSecondContextCreator) {
|
||||
SaManager.setSaTokenSecondContext(saTokenSecondContextCreator.create());
|
||||
}
|
||||
|
||||
/**
|
||||
* 注入侦听器Bean
|
||||
*
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
package cn.dev33.satoken.spring;
|
||||
|
||||
import cn.dev33.satoken.context.SaTokenContext;
|
||||
import cn.dev33.satoken.context.SaTokenContextForReadOnly;
|
||||
import cn.dev33.satoken.context.model.SaRequest;
|
||||
import cn.dev33.satoken.context.model.SaResponse;
|
||||
import cn.dev33.satoken.context.model.SaStorage;
|
||||
@@ -31,7 +31,7 @@ import cn.dev33.satoken.servlet.model.SaStorageForServlet;
|
||||
* @author click33
|
||||
* @since 1.19.0
|
||||
*/
|
||||
public class SaTokenContextForSpring implements SaTokenContext {
|
||||
public class SaTokenContextForSpring implements SaTokenContextForReadOnly {
|
||||
|
||||
/**
|
||||
* 获取当前请求的 Request 包装对象
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
package cn.dev33.satoken.spring;
|
||||
|
||||
import cn.dev33.satoken.context.SaTokenContext;
|
||||
import cn.dev33.satoken.context.SaTokenContextForReadOnly;
|
||||
import cn.dev33.satoken.context.model.SaRequest;
|
||||
import cn.dev33.satoken.context.model.SaResponse;
|
||||
import cn.dev33.satoken.context.model.SaStorage;
|
||||
@@ -31,7 +31,7 @@ import cn.dev33.satoken.servlet.model.SaStorageForServlet;
|
||||
* @author click33
|
||||
* @since 1.34.0
|
||||
*/
|
||||
public class SaTokenContextForSpringInJakartaServlet implements SaTokenContext {
|
||||
public class SaTokenContextForSpringInJakartaServlet implements SaTokenContextForReadOnly {
|
||||
|
||||
/**
|
||||
* 获取当前请求的 Request 包装对象
|
||||
|
||||
Reference in New Issue
Block a user