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;
+ }
+}