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 @@
-
-
-
+
-
-
-
-
- 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-demo/sa-token-demo-sso-server-solon/src/main/resources/app.yml b/sa-token-demo/sa-token-demo-sso-server-solon/src/main/resources/app.yml
index 5b6fa176..5a30a242 100644
--- a/sa-token-demo/sa-token-demo-sso-server-solon/src/main/resources/app.yml
+++ b/sa-token-demo/sa-token-demo-sso-server-solon/src/main/resources/app.yml
@@ -16,7 +16,7 @@ sa-token:
# 所有允许的授权回调地址
allow-url: "*"
# 是否打开单点注销功能
- is-slo: true
+ isSlo: true
# ------- SSO-模式三相关配置 (下面的配置在SSO模式三并且 is-slo=true 时打开)
# 是否打开模式三
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
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..9b6bbc42
--- /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(value = "${sa-token.oauth2}",required = false) 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..7ec8fc2d
--- /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(value = "${sa-token.sso}",required = false) 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;
+ }
+}