From 1feca73e2a70476137186de51e74a5a9db30108f Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Thu, 5 Jan 2023 19:20:21 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8D=20springboot3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/dev33/satoken/id/SaIdTemplate.java | 175 --------------- .../java/cn/dev33/satoken/id/SaIdUtil.java | 86 -------- .../sa-token-demo-alone-redis/pom.xml | 2 +- sa-token-demo/sa-token-demo-case/pom.xml | 2 +- .../sa-token-demo-dubbo-consumer/pom.xml | 3 +- .../sa-token-demo-dubbo-provider/pom.xml | 3 +- sa-token-demo/sa-token-demo-jwt/pom.xml | 2 +- .../sa-token-demo-oauth2-client/pom.xml | 2 +- .../sa-token-demo-oauth2-server/pom.xml | 2 +- .../sa-token-demo-quick-login/pom.xml | 2 +- sa-token-demo/sa-token-demo-solon/pom.xml | 2 + .../sa-token-demo-springboot-redis/pom.xml | 2 +- .../src/main/resources/application.yml | 4 +- .../sa-token-demo-springboot/pom.xml | 2 +- .../.gitignore | 12 ++ .../sa-token-demo-springboot3-redis/pom.xml | 71 ++++++ .../com/pj/SaTokenSpringBoot3Application.java | 21 ++ .../java/com/pj/current/GlobalException.java | 56 +++++ .../java/com/pj/current/NotFoundHandle.java | 26 +++ .../java/com/pj/satoken/SaTokenConfigure.java | 71 ++++++ .../java/com/pj/satoken/StpInterfaceImpl.java | 44 ++++ .../main/java/com/pj/test/AtController.java | 80 +++++++ .../java/com/pj/test/LoginController.java | 48 +++++ .../com/pj/test/StressTestController.java | 61 ++++++ .../main/java/com/pj/test/TestController.java | 30 +++ .../src/main/java/com/pj/util/AjaxJson.java | 162 ++++++++++++++ .../src/main/java/com/pj/util/Ttime.java | 63 ++++++ .../src/main/resources/application.yml | 50 +++++ .../sa-token-demo-sso-server/pom.xml | 2 +- .../sa-token-demo-sso1-client/pom.xml | 2 +- .../sa-token-demo-sso2-client/pom.xml | 2 +- .../sa-token-demo-sso3-client-nosdk/pom.xml | 2 +- .../sa-token-demo-sso3-client/pom.xml | 2 +- sa-token-demo/sa-token-demo-test/pom.xml | 2 +- sa-token-demo/sa-token-demo-thymeleaf/pom.xml | 2 +- .../.gitignore | 12 ++ .../sa-token-demo-webflux-springboot3/pom.xml | 72 +++++++ .../SaTokenWebfluxSpringboot3Application.java | 23 ++ .../java/com/pj/satoken/SaTokenConfigure.java | 41 ++++ .../java/com/pj/satoken/StpInterfaceImpl.java | 44 ++++ .../main/java/com/pj/test/DefineRoutes.java | 35 +++ .../java/com/pj/test/GlobalException.java | 52 +++++ .../main/java/com/pj/test/TestController.java | 80 +++++++ .../src/main/java/com/pj/util/AjaxJson.java | 154 +++++++++++++ .../src/main/resources/application.yml | 46 ++++ sa-token-demo/sa-token-demo-webflux/pom.xml | 4 +- ...on.java => SaTokenWebfluxApplication.java} | 4 +- .../src/main/resources/application.yml | 2 + .../sa-token-demo-websocket-spring/pom.xml | 2 +- sa-token-demo/sa-token-demo-websocket/pom.xml | 2 +- sa-token-dependencies/pom.xml | 30 ++- ...ot.autoconfigure.AutoConfiguration.imports | 1 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + ...ot.autoconfigure.AutoConfiguration.imports | 4 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + sa-token-plugin/sa-token-quick-login/pom.xml | 2 + .../cn/dev33/satoken/quick/SaQuickInject.java | 2 +- .../dev33/satoken/quick/SaQuickRegister.java | 10 +- .../satoken/quick/web/SaQuickController.java | 7 +- .../main/resources/META-INF/spring.factories | 3 +- ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../cn/dev33/satoken/aop/SaCheckAspect.java | 1 - ...ot.autoconfigure.AutoConfiguration.imports | 1 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + sa-token-starter/pom.xml | 4 + .../sa-token-jakarta-servlet/.gitignore | 12 ++ .../sa-token-jakarta-servlet/pom.xml | 35 +++ .../servlet/error/SaServletErrorCode.java | 17 ++ .../servlet/model/SaRequestForServlet.java | 117 ++++++++++ .../servlet/model/SaResponseForServlet.java | 79 +++++++ .../servlet/model/SaStorageForServlet.java | 60 ++++++ .../dev33/satoken/servlet/package-info.java | 4 + .../pom.xml | 41 ++-- .../satoken/reactor/spring/SaBeanInject.java | 186 ---------------- .../reactor/spring/SaBeanRegister.java | 50 ----- .../reactor/spring/SaPathMatcherHolder.java | 37 ---- .../SaTokenContextForSpringReactor.java | 1 + .../spring/SaTokenContextRegister.java | 25 +++ .../spring/json/SaJsonTemplateForJackson.java | 53 ----- .../spring/oauth2/SaOAuth2BeanInject.java | 40 ---- .../spring/oauth2/SaOAuth2BeanRegister.java | 28 --- .../reactor/spring/oauth2/package-info.java | 4 - .../reactor/spring/sso/SaSsoBeanInject.java | 40 ---- .../reactor/spring/sso/SaSsoBeanRegister.java | 28 --- .../reactor/spring/sso/package-info.java | 4 - .../main/resources/META-INF/spring.factories | 7 +- .../.gitignore | 12 ++ .../pom.xml | 118 ++++++++++ .../reactor/context/SaReactorHolder.java | 49 +++++ .../reactor/context/SaReactorSyncHolder.java | 63 ++++++ .../error/SaReactorSpringBootErrorCode.java | 20 ++ .../reactor/filter/SaReactorFilter.java | 203 ++++++++++++++++++ .../reactor/model/SaRequestForReactor.java | 113 ++++++++++ .../reactor/model/SaResponseForReactor.java | 77 +++++++ .../reactor/model/SaStorageForReactor.java | 61 ++++++ .../dev33/satoken/reactor/package-info.java | 4 + .../SaTokenContextForSpringReactor.java | 22 ++ .../spring/SaTokenContextRegister.java | 25 +++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + sa-token-starter/sa-token-servlet/pom.xml | 2 +- .../cn/dev33/satoken/solon/XPluginImp.java | 9 +- .../.gitignore | 12 ++ .../sa-token-spring-boot-autoconfig/pom.xml | 57 +++++ .../satoken/error/SaSpringBootErrorCode.java | 0 .../java/cn/dev33/satoken/package-info.java | 4 + .../cn/dev33/satoken/spring/SaBeanInject.java | 13 -- .../dev33/satoken/spring/SaBeanRegister.java | 11 - .../satoken/spring/SaPathMatcherHolder.java | 0 .../spring/json/SaJsonTemplateForJackson.java | 0 .../spring/oauth2/SaOAuth2BeanInject.java | 0 .../spring/oauth2/SaOAuth2BeanRegister.java | 0 .../satoken/spring/oauth2/package-info.java | 0 .../satoken/spring/sso/SaSsoBeanInject.java | 0 .../satoken/spring/sso/SaSsoBeanRegister.java | 0 .../satoken/spring/sso/package-info.java | 0 .../main/resources/META-INF/spring.factories | 7 + ...ot.autoconfigure.AutoConfiguration.imports | 6 + .../sa-token-spring-boot-starter/pom.xml | 17 +- .../interceptor/SaAnnotationInterceptor.java | 48 ----- .../interceptor/SaRouteInterceptor.java | 79 ------- .../spring/SaTokenContextRegister.java | 25 +++ .../main/resources/META-INF/spring.factories | 7 +- .../sa-token-spring-boot3-starter/.gitignore | 12 ++ .../sa-token-spring-boot3-starter/pom.xml | 77 +++++++ .../dev33/satoken/filter/SaServletFilter.java | 191 ++++++++++++++++ .../satoken/interceptor/SaInterceptor.java | 113 ++++++++++ .../java/cn/dev33/satoken/package-info.java | 4 + ...TokenContextForSpringInJakartaServlet.java | 59 +++++ .../spring/SaTokenContextRegister.java | 26 +++ .../dev33/satoken/spring/SpringMVCUtil.java | 53 +++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + 134 files changed, 3238 insertions(+), 974 deletions(-) delete mode 100644 sa-token-core/src/main/java/cn/dev33/satoken/id/SaIdTemplate.java delete mode 100644 sa-token-core/src/main/java/cn/dev33/satoken/id/SaIdUtil.java create mode 100644 sa-token-demo/sa-token-demo-springboot3-redis/.gitignore create mode 100644 sa-token-demo/sa-token-demo-springboot3-redis/pom.xml create mode 100644 sa-token-demo/sa-token-demo-springboot3-redis/src/main/java/com/pj/SaTokenSpringBoot3Application.java create mode 100644 sa-token-demo/sa-token-demo-springboot3-redis/src/main/java/com/pj/current/GlobalException.java create mode 100644 sa-token-demo/sa-token-demo-springboot3-redis/src/main/java/com/pj/current/NotFoundHandle.java create mode 100644 sa-token-demo/sa-token-demo-springboot3-redis/src/main/java/com/pj/satoken/SaTokenConfigure.java create mode 100644 sa-token-demo/sa-token-demo-springboot3-redis/src/main/java/com/pj/satoken/StpInterfaceImpl.java create mode 100644 sa-token-demo/sa-token-demo-springboot3-redis/src/main/java/com/pj/test/AtController.java create mode 100644 sa-token-demo/sa-token-demo-springboot3-redis/src/main/java/com/pj/test/LoginController.java create mode 100644 sa-token-demo/sa-token-demo-springboot3-redis/src/main/java/com/pj/test/StressTestController.java create mode 100644 sa-token-demo/sa-token-demo-springboot3-redis/src/main/java/com/pj/test/TestController.java create mode 100644 sa-token-demo/sa-token-demo-springboot3-redis/src/main/java/com/pj/util/AjaxJson.java create mode 100644 sa-token-demo/sa-token-demo-springboot3-redis/src/main/java/com/pj/util/Ttime.java create mode 100644 sa-token-demo/sa-token-demo-springboot3-redis/src/main/resources/application.yml create mode 100644 sa-token-demo/sa-token-demo-webflux-springboot3/.gitignore create mode 100644 sa-token-demo/sa-token-demo-webflux-springboot3/pom.xml create mode 100644 sa-token-demo/sa-token-demo-webflux-springboot3/src/main/java/com/pj/SaTokenWebfluxSpringboot3Application.java create mode 100644 sa-token-demo/sa-token-demo-webflux-springboot3/src/main/java/com/pj/satoken/SaTokenConfigure.java create mode 100644 sa-token-demo/sa-token-demo-webflux-springboot3/src/main/java/com/pj/satoken/StpInterfaceImpl.java create mode 100644 sa-token-demo/sa-token-demo-webflux-springboot3/src/main/java/com/pj/test/DefineRoutes.java create mode 100644 sa-token-demo/sa-token-demo-webflux-springboot3/src/main/java/com/pj/test/GlobalException.java create mode 100644 sa-token-demo/sa-token-demo-webflux-springboot3/src/main/java/com/pj/test/TestController.java create mode 100644 sa-token-demo/sa-token-demo-webflux-springboot3/src/main/java/com/pj/util/AjaxJson.java create mode 100644 sa-token-demo/sa-token-demo-webflux-springboot3/src/main/resources/application.yml rename sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/{SaTokenWebfluxDemoApplication.java => SaTokenWebfluxApplication.java} (77%) create mode 100644 sa-token-plugin/sa-token-alone-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 sa-token-plugin/sa-token-context-dubbo/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 sa-token-plugin/sa-token-context-grpc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 sa-token-plugin/sa-token-dao-redis-fastjson/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 sa-token-plugin/sa-token-dao-redis-fastjson2/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 sa-token-plugin/sa-token-dao-redis-jackson/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 sa-token-plugin/sa-token-dao-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 sa-token-plugin/sa-token-quick-login/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 sa-token-plugin/sa-token-spring-aop/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 sa-token-plugin/sa-token-temp-jwt/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 sa-token-starter/sa-token-jakarta-servlet/.gitignore create mode 100644 sa-token-starter/sa-token-jakarta-servlet/pom.xml create mode 100644 sa-token-starter/sa-token-jakarta-servlet/src/main/java/cn/dev33/satoken/servlet/error/SaServletErrorCode.java create mode 100644 sa-token-starter/sa-token-jakarta-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaRequestForServlet.java create mode 100644 sa-token-starter/sa-token-jakarta-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaResponseForServlet.java create mode 100644 sa-token-starter/sa-token-jakarta-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaStorageForServlet.java create mode 100644 sa-token-starter/sa-token-jakarta-servlet/src/main/java/cn/dev33/satoken/servlet/package-info.java delete mode 100644 sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaBeanInject.java delete mode 100644 sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaBeanRegister.java delete mode 100644 sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaPathMatcherHolder.java create mode 100644 sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaTokenContextRegister.java delete mode 100644 sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/json/SaJsonTemplateForJackson.java delete mode 100644 sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/oauth2/SaOAuth2BeanInject.java delete mode 100644 sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/oauth2/SaOAuth2BeanRegister.java delete mode 100644 sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/oauth2/package-info.java delete mode 100644 sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/sso/SaSsoBeanInject.java delete mode 100644 sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/sso/SaSsoBeanRegister.java delete mode 100644 sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/sso/package-info.java create mode 100644 sa-token-starter/sa-token-reactor-spring-boot3-starter/.gitignore create mode 100644 sa-token-starter/sa-token-reactor-spring-boot3-starter/pom.xml create mode 100644 sa-token-starter/sa-token-reactor-spring-boot3-starter/src/main/java/cn/dev33/satoken/reactor/context/SaReactorHolder.java create mode 100644 sa-token-starter/sa-token-reactor-spring-boot3-starter/src/main/java/cn/dev33/satoken/reactor/context/SaReactorSyncHolder.java create mode 100644 sa-token-starter/sa-token-reactor-spring-boot3-starter/src/main/java/cn/dev33/satoken/reactor/error/SaReactorSpringBootErrorCode.java create mode 100644 sa-token-starter/sa-token-reactor-spring-boot3-starter/src/main/java/cn/dev33/satoken/reactor/filter/SaReactorFilter.java create mode 100644 sa-token-starter/sa-token-reactor-spring-boot3-starter/src/main/java/cn/dev33/satoken/reactor/model/SaRequestForReactor.java create mode 100644 sa-token-starter/sa-token-reactor-spring-boot3-starter/src/main/java/cn/dev33/satoken/reactor/model/SaResponseForReactor.java create mode 100644 sa-token-starter/sa-token-reactor-spring-boot3-starter/src/main/java/cn/dev33/satoken/reactor/model/SaStorageForReactor.java create mode 100644 sa-token-starter/sa-token-reactor-spring-boot3-starter/src/main/java/cn/dev33/satoken/reactor/package-info.java create mode 100644 sa-token-starter/sa-token-reactor-spring-boot3-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaTokenContextForSpringReactor.java create mode 100644 sa-token-starter/sa-token-reactor-spring-boot3-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaTokenContextRegister.java create mode 100644 sa-token-starter/sa-token-reactor-spring-boot3-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 sa-token-starter/sa-token-spring-boot-autoconfig/.gitignore create mode 100644 sa-token-starter/sa-token-spring-boot-autoconfig/pom.xml rename sa-token-starter/{sa-token-spring-boot-starter => sa-token-spring-boot-autoconfig}/src/main/java/cn/dev33/satoken/error/SaSpringBootErrorCode.java (100%) create mode 100644 sa-token-starter/sa-token-spring-boot-autoconfig/src/main/java/cn/dev33/satoken/package-info.java rename sa-token-starter/{sa-token-spring-boot-starter => sa-token-spring-boot-autoconfig}/src/main/java/cn/dev33/satoken/spring/SaBeanInject.java (92%) rename sa-token-starter/{sa-token-spring-boot-starter => sa-token-spring-boot-autoconfig}/src/main/java/cn/dev33/satoken/spring/SaBeanRegister.java (79%) rename sa-token-starter/{sa-token-spring-boot-starter => sa-token-spring-boot-autoconfig}/src/main/java/cn/dev33/satoken/spring/SaPathMatcherHolder.java (100%) rename sa-token-starter/{sa-token-spring-boot-starter => sa-token-spring-boot-autoconfig}/src/main/java/cn/dev33/satoken/spring/json/SaJsonTemplateForJackson.java (100%) rename sa-token-starter/{sa-token-spring-boot-starter => sa-token-spring-boot-autoconfig}/src/main/java/cn/dev33/satoken/spring/oauth2/SaOAuth2BeanInject.java (100%) rename sa-token-starter/{sa-token-spring-boot-starter => sa-token-spring-boot-autoconfig}/src/main/java/cn/dev33/satoken/spring/oauth2/SaOAuth2BeanRegister.java (100%) rename sa-token-starter/{sa-token-spring-boot-starter => sa-token-spring-boot-autoconfig}/src/main/java/cn/dev33/satoken/spring/oauth2/package-info.java (100%) rename sa-token-starter/{sa-token-spring-boot-starter => sa-token-spring-boot-autoconfig}/src/main/java/cn/dev33/satoken/spring/sso/SaSsoBeanInject.java (100%) rename sa-token-starter/{sa-token-spring-boot-starter => sa-token-spring-boot-autoconfig}/src/main/java/cn/dev33/satoken/spring/sso/SaSsoBeanRegister.java (100%) rename sa-token-starter/{sa-token-spring-boot-starter => sa-token-spring-boot-autoconfig}/src/main/java/cn/dev33/satoken/spring/sso/package-info.java (100%) create mode 100644 sa-token-starter/sa-token-spring-boot-autoconfig/src/main/resources/META-INF/spring.factories create mode 100644 sa-token-starter/sa-token-spring-boot-autoconfig/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaAnnotationInterceptor.java delete mode 100644 sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaRouteInterceptor.java create mode 100644 sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaTokenContextRegister.java create mode 100644 sa-token-starter/sa-token-spring-boot3-starter/.gitignore create mode 100644 sa-token-starter/sa-token-spring-boot3-starter/pom.xml create mode 100644 sa-token-starter/sa-token-spring-boot3-starter/src/main/java/cn/dev33/satoken/filter/SaServletFilter.java create mode 100644 sa-token-starter/sa-token-spring-boot3-starter/src/main/java/cn/dev33/satoken/interceptor/SaInterceptor.java create mode 100644 sa-token-starter/sa-token-spring-boot3-starter/src/main/java/cn/dev33/satoken/package-info.java create mode 100644 sa-token-starter/sa-token-spring-boot3-starter/src/main/java/cn/dev33/satoken/spring/SaTokenContextForSpringInJakartaServlet.java create mode 100644 sa-token-starter/sa-token-spring-boot3-starter/src/main/java/cn/dev33/satoken/spring/SaTokenContextRegister.java create mode 100644 sa-token-starter/sa-token-spring-boot3-starter/src/main/java/cn/dev33/satoken/spring/SpringMVCUtil.java create mode 100644 sa-token-starter/sa-token-spring-boot3-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/id/SaIdTemplate.java b/sa-token-core/src/main/java/cn/dev33/satoken/id/SaIdTemplate.java deleted file mode 100644 index a3417aed..00000000 --- a/sa-token-core/src/main/java/cn/dev33/satoken/id/SaIdTemplate.java +++ /dev/null @@ -1,175 +0,0 @@ -package cn.dev33.satoken.id; - -import cn.dev33.satoken.SaManager; -import cn.dev33.satoken.context.SaHolder; -import cn.dev33.satoken.exception.IdTokenInvalidException; -import cn.dev33.satoken.util.SaFoxUtil; - -/** - *
身份凭证的获取与校验,可用于微服务内部调用鉴权 - * @author kong - * - */ -@Deprecated -public class SaIdTemplate { - - /** - * 在 Request 上储存 Id-Token 时建议使用的key - */ - public static final String ID_TOKEN = "SA_ID_TOKEN"; - - // -------------------- 获取 & 校验 - - /** - * 获取当前Id-Token, 如果不存在,则立即创建并返回 - * @return 当前token - */ - public String getToken() { - String currentToken = getTokenNh(); - if(SaFoxUtil.isEmpty(currentToken)) { - // 注意这里的自刷新不能做到高并发可用 - currentToken = refreshToken(); - } - return currentToken; - } - - /** - * 判断一个Id-Token是否有效 - * @param token 要验证的token - * @return 这个token是否有效 - */ - public boolean isValid(String token) { - // 1、 如果传入的token未空,立即返回false - if(SaFoxUtil.isEmpty(token)) { - return false; - } - - // 2、 验证当前 Id-Token 及 Past-Id-Token - return token.equals(getToken()) || token.equals(getPastTokenNh()); - } - - /** - * 校验一个Id-Token是否有效 (如果无效则抛出异常) - * @param token 要验证的token - */ - public void checkToken(String token) { - if(isValid(token) == false) { - token = (token == null ? "" : token); - throw new IdTokenInvalidException("无效Id-Token:" + token); - } - } - - /** - * 校验当前Request提供的Id-Token是否有效 (如果无效则抛出异常) - */ - public void checkCurrentRequestToken() { - checkToken(SaHolder.getRequest().getHeader(ID_TOKEN)); - } - - /** - * 刷新一次Id-Token (注意集群环境中不要多个服务重复调用) - * @return 新Token - */ - public String refreshToken() { - - // 1. 先将当前 Id-Token 写入到 Past-Id-Token 中 - String idToken = getTokenNh(); - if(SaFoxUtil.isEmpty(idToken) == false) { - savePastToken(idToken, getTokenTimeout()); - } - - // 2. 再刷新当前Id-Token - String newIdToken = createToken(); - saveToken(newIdToken); - - // 3. 返回新的 Id-Token - return newIdToken; - } - - - // ------------------------------ 保存Token - - /** - * 保存Id-Token - * @param token token - */ - public void saveToken(String token) { - if(SaFoxUtil.isEmpty(token)) { - return; - } - SaManager.getSaTokenDao().set(splicingTokenSaveKey(), token, SaManager.getConfig().getIdTokenTimeout()); - } - - /** - * 保存Past-Id-Token - * @param token token - * @param timeout 有效期(单位:秒) - */ - public void savePastToken(String token, long timeout){ - if(SaFoxUtil.isEmpty(token)) { - return; - } - SaManager.getSaTokenDao().set(splicingPastTokenSaveKey(), token, timeout); - } - - - // -------------------- 获取Token - - /** - * 获取Id-Token,不做任何处理 - * @return token - */ - public String getTokenNh() { - return SaManager.getSaTokenDao().get(splicingTokenSaveKey()); - } - - /** - * 获取Past-Id-Token,不做任何处理 - * @return token - */ - public String getPastTokenNh() { - return SaManager.getSaTokenDao().get(splicingPastTokenSaveKey()); - } - - /** - * 获取Id-Token的剩余有效期 (单位:秒) - * @return token - */ - public long getTokenTimeout() { - return SaManager.getSaTokenDao().getTimeout(splicingTokenSaveKey()); - } - - - // -------------------- 创建Token - - /** - * 创建一个Id-Token - * @return Token - */ - public String createToken() { - return SaFoxUtil.getRandomString(64); - } - - - // -------------------- 拼接key - - /** - * 拼接key:Id-Token 的存储 key - * @return key - */ - public String splicingTokenSaveKey() { - return SaManager.getConfig().getTokenName() + ":var:id-token"; - } - - /** - * 拼接key:次级 Id-Token 的存储 key - * @return key - */ - public String splicingPastTokenSaveKey() { - return SaManager.getConfig().getTokenName() + ":var:past-id-token"; - } - -} diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/id/SaIdUtil.java b/sa-token-core/src/main/java/cn/dev33/satoken/id/SaIdUtil.java deleted file mode 100644 index a9ca80a8..00000000 --- a/sa-token-core/src/main/java/cn/dev33/satoken/id/SaIdUtil.java +++ /dev/null @@ -1,86 +0,0 @@ -package cn.dev33.satoken.id; - -/** - *
Bean 的注册与注入应该分开在两个文件中,否则在某些场景下会造成循环依赖
+ * @author kong
+ *
+ */
+public class SaTokenContextRegister {
+
+ /**
+ * 获取容器交互Bean (ThreadLocal版)
+ *
+ * @return 容器交互Bean (ThreadLocal版)
+ */
+ @Bean
+ public SaTokenContext getSaTokenContextForSpringReactor() {
+ return new SaTokenContextForSpringReactor();
+ }
+
+}
diff --git a/sa-token-starter/sa-token-reactor-spring-boot3-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/sa-token-starter/sa-token-reactor-spring-boot3-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000..32577197
--- /dev/null
+++ b/sa-token-starter/sa-token-reactor-spring-boot3-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+cn.dev33.satoken.reactor.spring.SaTokenContextRegister
\ No newline at end of file
diff --git a/sa-token-starter/sa-token-servlet/pom.xml b/sa-token-starter/sa-token-servlet/pom.xml
index e3fb2ca7..df2a68c8 100644
--- a/sa-token-starter/sa-token-servlet/pom.xml
+++ b/sa-token-starter/sa-token-servlet/pom.xml
@@ -14,7 +14,7 @@
Bean 的注册与注入应该分开在两个文件中,否则在某些场景下会造成循环依赖
+ * @author kong
+ *
+ */
+public class SaTokenContextRegister {
+
+ /**
+ * 获取上下文Bean (Spring版)
+ *
+ * @return 容器交互Bean (Spring版)
+ */
+ @Bean
+ public SaTokenContext getSaTokenContextForSpring() {
+ return new SaTokenContextForSpring();
+ }
+
+}
diff --git a/sa-token-starter/sa-token-spring-boot-starter/src/main/resources/META-INF/spring.factories b/sa-token-starter/sa-token-spring-boot-starter/src/main/resources/META-INF/spring.factories
index d092a911..05745ef3 100644
--- a/sa-token-starter/sa-token-spring-boot-starter/src/main/resources/META-INF/spring.factories
+++ b/sa-token-starter/sa-token-spring-boot-starter/src/main/resources/META-INF/spring.factories
@@ -1,7 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-cn.dev33.satoken.spring.SaBeanRegister,\
-cn.dev33.satoken.spring.SaBeanInject,\
-cn.dev33.satoken.spring.sso.SaSsoBeanRegister,\
-cn.dev33.satoken.spring.sso.SaSsoBeanInject,\
-cn.dev33.satoken.spring.oauth2.SaOAuth2BeanRegister,\
-cn.dev33.satoken.spring.oauth2.SaOAuth2BeanInject
\ No newline at end of file
+cn.dev33.satoken.spring.SaTokenContextRegister
\ No newline at end of file
diff --git a/sa-token-starter/sa-token-spring-boot3-starter/.gitignore b/sa-token-starter/sa-token-spring-boot3-starter/.gitignore
new file mode 100644
index 00000000..f56feec7
--- /dev/null
+++ b/sa-token-starter/sa-token-spring-boot3-starter/.gitignore
@@ -0,0 +1,12 @@
+target/
+
+node_modules/
+bin/
+.settings/
+unpackage/
+.classpath
+.project
+
+.factorypath
+
+.idea/
\ No newline at end of file
diff --git a/sa-token-starter/sa-token-spring-boot3-starter/pom.xml b/sa-token-starter/sa-token-spring-boot3-starter/pom.xml
new file mode 100644
index 00000000..436e9ad1
--- /dev/null
+++ b/sa-token-starter/sa-token-spring-boot3-starter/pom.xml
@@ -0,0 +1,77 @@
+
+ 参数:路由处理函数指针
+ */
+ public SaParamFunction [ 当前拦截器写法已过期,可能将在以后的版本删除,推荐升级为 SaInterceptor ]
- *
- * @author kong
- */
-@Deprecated
-public class SaAnnotationInterceptor implements HandlerInterceptor {
-
- /**
- * 构建: 注解式鉴权 - 拦截器
- */
- public SaAnnotationInterceptor() {
- }
-
- /**
- * 每次请求之前触发的方法
- */
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
- throws Exception {
-
- // 获取处理 Method
- if (handler instanceof HandlerMethod == false) {
- return true;
- }
- Method method = ((HandlerMethod) handler).getMethod();
-
- // 进行验证
- SaStrategy.me.checkMethodAnnotation.accept(method);
-
- // 通过验证
- return true;
- }
-
-}
diff --git a/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaRouteInterceptor.java b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaRouteInterceptor.java
deleted file mode 100644
index 4ce53f11..00000000
--- a/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaRouteInterceptor.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package cn.dev33.satoken.interceptor;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.web.servlet.HandlerInterceptor;
-
-import cn.dev33.satoken.exception.BackResultException;
-import cn.dev33.satoken.exception.StopMatchException;
-import cn.dev33.satoken.router.SaRouteFunction;
-import cn.dev33.satoken.servlet.model.SaRequestForServlet;
-import cn.dev33.satoken.servlet.model.SaResponseForServlet;
-import cn.dev33.satoken.stp.StpUtil;
-
-/**
- * Sa-Token 拦截式鉴权 - 拦截器
- * [ 当前拦截器写法已过期,可能将在以后的版本删除,推荐升级为 SaInterceptor ]
- *
- * @author kong
- */
-@Deprecated
-public class SaRouteInterceptor implements HandlerInterceptor {
-
- /**
- * 每次进入拦截器的[执行函数],默认为登录校验
- */
- public SaRouteFunction function = (req, res, handler) -> StpUtil.checkLogin();
-
- /**
- * 创建一个路由拦截器
- */
- public SaRouteInterceptor() {
- }
-
- /**
- * 创建, 并指定[执行函数]
- * @param function [执行函数]
- */
- public SaRouteInterceptor(SaRouteFunction function) {
- this.function = function;
- }
-
- /**
- * 静态方法快速构建一个
- * @param function 自定义模式下的执行函数
- * @return sa路由拦截器
- */
- public static SaRouteInterceptor newInstance(SaRouteFunction function) {
- return new SaRouteInterceptor(function);
- }
-
-
- // ----------------- 验证方法 -----------------
-
- /**
- * 每次请求之前触发的方法
- */
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
- throws Exception {
-
- try {
- function.run(new SaRequestForServlet(request), new SaResponseForServlet(response), handler);
- } catch (StopMatchException e) {
- // 停止匹配,进入Controller
- } catch (BackResultException e) {
- // 停止匹配,向前端输出结果
- if(response.getContentType() == null) {
- response.setContentType("text/plain; charset=utf-8");
- }
- response.getWriter().print(e.getMessage());
- return false;
- }
-
- // 通过验证
- return true;
- }
-
-}
diff --git a/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaTokenContextRegister.java b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaTokenContextRegister.java
new file mode 100644
index 00000000..38fb19b7
--- /dev/null
+++ b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaTokenContextRegister.java
@@ -0,0 +1,25 @@
+package cn.dev33.satoken.spring;
+
+import org.springframework.context.annotation.Bean;
+
+import cn.dev33.satoken.context.SaTokenContext;
+
+/**
+ * 注册Sa-Token所需要的Bean
+ *