From f1fd2f1ca57552d3cd69df826078d00bb02d18ec Mon Sep 17 00:00:00 2001 From: noear Date: Sun, 29 Jan 2023 18:20:55 +0800 Subject: [PATCH 1/4] =?UTF-8?q?sa-token-solon-plugin::=E6=B7=BB=E5=8A=A0ss?= =?UTF-8?q?o=E5=92=8Coauth2=E6=A1=86=E6=9E=B6=E7=9A=84=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sa-token-solon-plugin/pom.xml | 24 ++++++++-- .../cn/dev33/satoken/solon/XPluginImp.java | 18 ++++++- .../solon/oauth2/SaOAuth2AutoConfigure.java | 44 +++++++++++++++++ .../satoken/solon/sso/SaSsoAutoConfigure.java | 48 +++++++++++++++++++ 4 files changed, 128 insertions(+), 6 deletions(-) create mode 100644 sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/oauth2/SaOAuth2AutoConfigure.java create mode 100644 sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/sso/SaSsoAutoConfigure.java diff --git a/sa-token-starter/sa-token-solon-plugin/pom.xml b/sa-token-starter/sa-token-solon-plugin/pom.xml index 57a545c9..1827ce72 100644 --- a/sa-token-starter/sa-token-solon-plugin/pom.xml +++ b/sa-token-starter/sa-token-solon-plugin/pom.xml @@ -17,15 +17,29 @@ solon integrate sa-token - - cn.dev33 - sa-token-core - - org.noear solon + + cn.dev33 + sa-token-core + + + + + cn.dev33 + sa-token-oauth2 + true + + + + + cn.dev33 + sa-token-sso + true + + \ No newline at end of file diff --git a/sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/XPluginImp.java b/sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/XPluginImp.java index 9d103e41..f67a32ee 100644 --- a/sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/XPluginImp.java +++ b/sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/XPluginImp.java @@ -1,6 +1,9 @@ package cn.dev33.satoken.solon; +import cn.dev33.satoken.solon.oauth2.SaOAuth2AutoConfigure; +import cn.dev33.satoken.solon.sso.SaSsoAutoConfigure; import org.noear.solon.Solon; +import org.noear.solon.Utils; import org.noear.solon.core.AopContext; import org.noear.solon.core.Plugin; @@ -39,9 +42,23 @@ public class XPluginImp implements Plugin { //注入其它 Bean context.beanOnloaded(c -> { beanInitDo(c); + ssoBeanInitDo(c); + oauth2BeanInitDo(c); }); } + private void ssoBeanInitDo(AopContext context){ + if (Utils.loadClass("cn.dev33.satoken.sso.SaSsoManager") != null) { + context.beanMake(SaSsoAutoConfigure.class); + } + } + + private void oauth2BeanInitDo(AopContext context){ + if(Utils.loadClass("cn.dev33.satoken.oauth2.SaOAuth2Manager") != null){ + context.beanMake(SaOAuth2AutoConfigure.class); + } + } + private void beanInitDo(AopContext context) { // 注入上下文Bean SaManager.setSaTokenContext(new SaContextForSolon()); @@ -112,5 +129,4 @@ public class XPluginImp implements Plugin { StpUtil.setStpLogic(bean); }); } - } \ No newline at end of file diff --git a/sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/oauth2/SaOAuth2AutoConfigure.java b/sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/oauth2/SaOAuth2AutoConfigure.java new file mode 100644 index 00000000..6deb7739 --- /dev/null +++ b/sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/oauth2/SaOAuth2AutoConfigure.java @@ -0,0 +1,44 @@ +package cn.dev33.satoken.solon.oauth2; + +import cn.dev33.satoken.oauth2.SaOAuth2Manager; +import cn.dev33.satoken.oauth2.config.SaOAuth2Config; +import cn.dev33.satoken.oauth2.logic.SaOAuth2Template; +import cn.dev33.satoken.oauth2.logic.SaOAuth2Util; +import org.noear.solon.annotation.Bean; +import org.noear.solon.annotation.Configuration; +import org.noear.solon.annotation.Inject; + +/** + * @author noear + * @since 2.0 + */ +@Configuration +public class SaOAuth2AutoConfigure { + /** + * 获取 OAuth2配置Bean + */ + @Bean + public SaOAuth2Config getConfig(@Inject("${sa-token.oauth2}") SaOAuth2Config oAuth2Config) { + return oAuth2Config; + } + + /** + * 注入OAuth2配置Bean + * + * @param saOAuth2Config 配置对象 + */ + @Bean + public void setSaOAuth2Config(@Inject(required = false) SaOAuth2Config saOAuth2Config) { + SaOAuth2Manager.setConfig(saOAuth2Config); + } + + /** + * 注入代码模板Bean + * + * @param saOAuth2Template 代码模板Bean + */ + @Bean + public void setSaOAuth2Interface(@Inject(required = false) SaOAuth2Template saOAuth2Template) { + SaOAuth2Util.saOAuth2Template = saOAuth2Template; + } +} diff --git a/sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/sso/SaSsoAutoConfigure.java b/sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/sso/SaSsoAutoConfigure.java new file mode 100644 index 00000000..81810692 --- /dev/null +++ b/sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/sso/SaSsoAutoConfigure.java @@ -0,0 +1,48 @@ +package cn.dev33.satoken.solon.sso; + +import cn.dev33.satoken.config.SaSsoConfig; +import cn.dev33.satoken.sso.SaSsoManager; +import cn.dev33.satoken.sso.SaSsoProcessor; +import cn.dev33.satoken.sso.SaSsoTemplate; +import cn.dev33.satoken.sso.SaSsoUtil; +import org.noear.solon.annotation.Bean; +import org.noear.solon.annotation.Configuration; +import org.noear.solon.annotation.Init; +import org.noear.solon.annotation.Inject; +import org.noear.solon.core.AopContext; + +/** + * @author noear + * @since 2.0 + */ +@Configuration +public class SaSsoAutoConfigure { + /** + * 获取 SSO 配置Bean + * */ + @Bean + public SaSsoConfig getConfig(@Inject("${sa-token.sso}") SaSsoConfig ssoConfig) { + return ssoConfig; + } + + /** + * 注入 Sa-Token-SSO 配置Bean + * + * @param saSsoConfig 配置对象 + */ + @Bean + public void setSaSsoConfig(@Inject(required = false) SaSsoConfig saSsoConfig) { + SaSsoManager.setConfig(saSsoConfig); + } + + /** + * 注入 Sa-Token-SSO 单点登录模块 Bean + * + * @param ssoTemplate saSsoTemplate对象 + */ + @Bean + public void setSaSsoTemplate(@Inject(required = false) SaSsoTemplate ssoTemplate) { + SaSsoUtil.ssoTemplate = ssoTemplate; + SaSsoProcessor.instance.ssoTemplate = ssoTemplate; + } +} From efa8523a2067568dcba9b5eb159c51ccf8961d8b Mon Sep 17 00:00:00 2001 From: noear Date: Sun, 29 Jan 2023 18:21:47 +0800 Subject: [PATCH 2/4] =?UTF-8?q?sa-token-demo-sso-server-solon::=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=20sa-token-solon-plugin=20=E6=9C=80=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E9=80=82=E9=85=8D=E4=BB=A3=E7=A0=81=EF=BC=8C=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sa-token-demo/sa-token-demo-sso-server-solon/pom.xml | 12 ++++-------- .../src/main/java/com/pj/sso/SsoConfig.java | 9 +-------- sa-token-dependencies/pom.xml | 2 +- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/sa-token-demo/sa-token-demo-sso-server-solon/pom.xml b/sa-token-demo/sa-token-demo-sso-server-solon/pom.xml index 0c7c41d7..fda1c56e 100644 --- a/sa-token-demo/sa-token-demo-sso-server-solon/pom.xml +++ b/sa-token-demo/sa-token-demo-sso-server-solon/pom.xml @@ -6,17 +6,10 @@ sa-token-demo-sso-server-solon 0.0.1-SNAPSHOT - - - org.noear - solon-parent - 1.12.0 - - - 1.34.0 + 1.12.4 @@ -25,6 +18,7 @@ org.noear solon-web + ${solon.version} @@ -52,12 +46,14 @@ org.noear solon.view.thymeleaf + ${solon.version} org.noear forest-solon-plugin + ${solon.version} diff --git a/sa-token-demo/sa-token-demo-sso-server-solon/src/main/java/com/pj/sso/SsoConfig.java b/sa-token-demo/sa-token-demo-sso-server-solon/src/main/java/com/pj/sso/SsoConfig.java index 2e77fd2f..645885d8 100644 --- a/sa-token-demo/sa-token-demo-sso-server-solon/src/main/java/com/pj/sso/SsoConfig.java +++ b/sa-token-demo/sa-token-demo-sso-server-solon/src/main/java/com/pj/sso/SsoConfig.java @@ -16,13 +16,6 @@ import org.noear.solon.core.handle.ModelAndView; */ @Configuration public class SsoConfig { - /** - * 构建 SaSsoConfig bean - * */ - @Bean - public SaSsoConfig getSaSsoConfig(@Inject("${sa-token.sso}") SaSsoConfig ssoConfig) { - return ssoConfig; - } /** * 构建建 SaToken redis dao(如果不需要 redis;可以注释掉) @@ -34,7 +27,7 @@ public class SsoConfig { // 配置SSO相关参数 @Bean - public void configSso(SaSsoConfig sso) { + public void configSso(SaSsoConfig sso) { //SaSsoConfig 已自动构建 // 配置:未登录时返回的View sso.setNotLoginView(() -> { diff --git a/sa-token-dependencies/pom.xml b/sa-token-dependencies/pom.xml index 47955d76..63c7f8f2 100644 --- a/sa-token-dependencies/pom.xml +++ b/sa-token-dependencies/pom.xml @@ -23,7 +23,7 @@ 3.1.0 6.0.0 3.0.9.RELEASE - 1.12.2 + 1.12.4 1.4.5 3.2.50 4.9.17 From dde4b3489244008d748bee11f875fe94922de08b Mon Sep 17 00:00:00 2001 From: noear Date: Sun, 29 Jan 2023 18:22:32 +0800 Subject: [PATCH 3/4] =?UTF-8?q?sa-token-demo-solon::=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sa-token-demo/sa-token-demo-solon/pom.xml | 19 +++---------------- .../java/com/pj/satoken/SaTokenConfigure.java | 2 +- .../src/main/resources/app.yml | 2 +- 3 files changed, 5 insertions(+), 18 deletions(-) diff --git a/sa-token-demo/sa-token-demo-solon/pom.xml b/sa-token-demo/sa-token-demo-solon/pom.xml index 5bb3b816..5a91e468 100644 --- a/sa-token-demo/sa-token-demo-solon/pom.xml +++ b/sa-token-demo/sa-token-demo-solon/pom.xml @@ -10,7 +10,7 @@ 1.34.0 - 1.10.13 + 1.12.4 UTF-8 UTF-8 @@ -40,29 +40,16 @@ - - - + - - -