From 54114ebac6381461154758940958bf83cf8256c1 Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Sat, 11 May 2024 15:37:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E4=BC=98=E5=8C=96=E4=B8=80?= =?UTF-8?q?=E4=B8=8B=20solon=20=E7=9B=B8=E5=85=B3=E9=9B=86=E6=88=90=20demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sa-token-demo/sa-token-demo-solon/pom.xml | 2 +- .../src/main/java/com/pj/SaTokenDemoApp.java | 10 ++ .../src/main/java/com/pj/SysUser.java | 64 +++++++++++ .../java/com/pj/satoken/SaTokenConfigure.java | 18 ++-- .../sa-token-demo-sso-server-solon/pom.xml | 3 +- .../src/main/java/com/pj/SaSsoServerApp.java | 9 +- .../src/main/java/com/pj/sso/SsoConfig.java | 7 +- .../src/main/resources/app.yml | 2 +- .../src/main/java/com/pj/SaSso1ClientApp.java | 10 ++ .../src/main/resources/app.yml | 8 +- .../sa-token-demo-sso2-client-solon/pom.xml | 7 ++ .../src/main/java/com/pj/SaConfig.java | 15 +++ .../src/main/java/com/pj/SaSso2ClientApp.java | 11 +- .../src/main/resources/app.yml | 9 +- .../src/main/java/com/pj/SaSso3ClientApp.java | 11 +- .../java/com/pj/sso/SaSsoAutoConfigure.java | 100 +++++++++--------- .../src/main/java/com/pj/sso/SsoConfig.java | 4 +- .../src/main/resources/app.yml | 15 +-- .../cn/dev33/satoken/solon/XPluginImp.java | 13 ++- 19 files changed, 230 insertions(+), 88 deletions(-) create mode 100644 sa-token-demo/sa-token-demo-solon/src/main/java/com/pj/SysUser.java diff --git a/sa-token-demo/sa-token-demo-solon/pom.xml b/sa-token-demo/sa-token-demo-solon/pom.xml index 075101d1..ecd93e43 100644 --- a/sa-token-demo/sa-token-demo-solon/pom.xml +++ b/sa-token-demo/sa-token-demo-solon/pom.xml @@ -40,7 +40,7 @@ sa-token-solon-plugin ${sa-token.version} - + cn.dev33 diff --git a/sa-token-demo/sa-token-demo-solon/src/main/java/com/pj/SaTokenDemoApp.java b/sa-token-demo/sa-token-demo-solon/src/main/java/com/pj/SaTokenDemoApp.java index 8bc72dfa..5d7eefef 100644 --- a/sa-token-demo/sa-token-demo-solon/src/main/java/com/pj/SaTokenDemoApp.java +++ b/sa-token-demo/sa-token-demo-solon/src/main/java/com/pj/SaTokenDemoApp.java @@ -2,6 +2,8 @@ package com.pj; import cn.dev33.satoken.SaManager; +import cn.dev33.satoken.session.SaSession; +import cn.dev33.satoken.stp.StpUtil; import org.noear.solon.Solon; import org.noear.solon.annotation.SolonMain; @@ -16,5 +18,13 @@ public class SaTokenDemoApp { public static void main(String[] args) { Solon.start(SaTokenDemoApp.class, args); System.out.println("\n启动成功:Sa-Token配置如下:" + SaManager.getConfig()); + + SaSession session = StpUtil.getSessionByLoginId(10001); + session.set("name", "zhang"); + session.set("user", new SysUser(10001, "张三")); + + session = StpUtil.getSessionByLoginId(10001); + System.out.println(session.get("name")); + System.out.println(session.get("user")); } } \ No newline at end of file diff --git a/sa-token-demo/sa-token-demo-solon/src/main/java/com/pj/SysUser.java b/sa-token-demo/sa-token-demo-solon/src/main/java/com/pj/SysUser.java new file mode 100644 index 00000000..4d564ed5 --- /dev/null +++ b/sa-token-demo/sa-token-demo-solon/src/main/java/com/pj/SysUser.java @@ -0,0 +1,64 @@ +package com.pj; + +/** + * @author click33 + * @since 2024/5/11 + */ +public class SysUser { + + public int id; + + public String name; + + public SysUser() { + } + public SysUser(int id, String name) { + this.id = id; + this.name = name; + } + + + /** + * 获取 + * + * @return id + */ + public int getId() { + return this.id; + } + + /** + * 设置 + * + * @param id + */ + public void setId(int id) { + this.id = id; + } + + /** + * 获取 + * + * @return name + */ + public String getName() { + return this.name; + } + + /** + * 设置 + * + * @param name + */ + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + return "SysUser{" + + "id=" + id + + ", name='" + name + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/sa-token-demo/sa-token-demo-solon/src/main/java/com/pj/satoken/SaTokenConfigure.java b/sa-token-demo/sa-token-demo-solon/src/main/java/com/pj/satoken/SaTokenConfigure.java index 1ca07d17..43d278c5 100644 --- a/sa-token-demo/sa-token-demo-solon/src/main/java/com/pj/satoken/SaTokenConfigure.java +++ b/sa-token-demo/sa-token-demo-solon/src/main/java/com/pj/satoken/SaTokenConfigure.java @@ -1,15 +1,13 @@ package com.pj.satoken; +import cn.dev33.satoken.context.SaHolder; import cn.dev33.satoken.dao.SaTokenDao; import cn.dev33.satoken.dao.SaTokenDaoOfRedis; import cn.dev33.satoken.solon.integration.SaTokenInterceptor; +import com.pj.util.AjaxJson; import org.noear.solon.annotation.Bean; import org.noear.solon.annotation.Configuration; - -import com.pj.util.AjaxJson; - -import cn.dev33.satoken.context.SaHolder; import org.noear.solon.annotation.Inject; @@ -59,9 +57,11 @@ public class SaTokenConfigure { ; }); } -//如果需要 redis dao,加这段代表 -// @Bean -// public SaTokenDao saTokenDaoInit(@Inject("${sa-token-dao.redis}") SaTokenDaoOfRedis saTokenDao) { -// return saTokenDao; -// } + + //如果需要 redis dao,加这段代表 + @Bean + public SaTokenDao saTokenDaoInit(@Inject("${sa-token-dao.redis}") SaTokenDaoOfRedis saTokenDao) { + return saTokenDao; + } + } diff --git a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/pom.xml b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/pom.xml index b08a1f46..5c7d651c 100644 --- a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/pom.xml +++ b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/pom.xml @@ -17,6 +17,7 @@ 1.38.0 + 2.7.0 @@ -48,7 +49,7 @@ sa-token-redisx ${sa-token.version} - + org.noear diff --git a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/src/main/java/com/pj/SaSsoServerApp.java b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/src/main/java/com/pj/SaSsoServerApp.java index 82fae5d6..f10580bc 100644 --- a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/src/main/java/com/pj/SaSsoServerApp.java +++ b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/src/main/java/com/pj/SaSsoServerApp.java @@ -1,6 +1,7 @@ package com.pj; +import cn.dev33.satoken.sso.SaSsoManager; import org.noear.solon.Solon; import org.noear.solon.annotation.SolonMain; @@ -9,7 +10,13 @@ public class SaSsoServerApp { public static void main(String[] args) { Solon.start(SaSsoServerApp.class, args); - System.out.println("\n------ Sa-Token-SSO 统一认证中心启动成功 "); + + System.out.println(); + System.out.println("---------------------- Solon Sa-Token SSO 统一认证中心启动成功 ----------------------"); + System.out.println("配置信息:" + SaSsoManager.getServerConfig()); + System.out.println("统一认证登录地址:http://sa-sso-server.com:9000/sso/auth"); + System.out.println("测试前需要根据官网文档修改hosts文件,测试账号密码:sa / 123456"); + System.out.println(); } } \ No newline at end of file diff --git a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/src/main/java/com/pj/sso/SsoConfig.java b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/src/main/java/com/pj/sso/SsoConfig.java index 0094cac4..4d8ed39c 100644 --- a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/src/main/java/com/pj/sso/SsoConfig.java +++ b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/src/main/java/com/pj/sso/SsoConfig.java @@ -44,12 +44,13 @@ public class SsoConfig { return SaResult.error("登录失败!"); }; - // 配置 Http 请求处理器 (在模式三的单点注销功能下用到,如不需要可以注释掉) + // 配置 Http 请求处理器 ssoServer.sendHttp = url -> { try { - // 发起 http 请求 System.out.println("------ 发起请求:" + url); - return Forest.get(url).executeAsString(); + String resStr = Forest.get(url).executeAsString(); + System.out.println("------ 请求结果:" + resStr); + return resStr; } catch (Exception e) { e.printStackTrace(); return null; diff --git a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/src/main/resources/app.yml b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/src/main/resources/app.yml index af035ff6..e895bbae 100644 --- a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/src/main/resources/app.yml +++ b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso-server-solon/src/main/resources/app.yml @@ -29,7 +29,7 @@ sa-token: sa-token.dao: #名字可以随意取 redis: server: "localhost:6379" - password: 123456 +# password: 123456 db: 1 maxTotal: 200 diff --git a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso1-client-solon/src/main/java/com/pj/SaSso1ClientApp.java b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso1-client-solon/src/main/java/com/pj/SaSso1ClientApp.java index c3718225..8678b265 100644 --- a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso1-client-solon/src/main/java/com/pj/SaSso1ClientApp.java +++ b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso1-client-solon/src/main/java/com/pj/SaSso1ClientApp.java @@ -1,6 +1,7 @@ package com.pj; +import cn.dev33.satoken.sso.SaSsoManager; import org.noear.solon.Solon; import org.noear.solon.annotation.SolonMain; @@ -15,6 +16,15 @@ public class SaSso1ClientApp { public static void main(String[] args) { Solon.start(SaSso1ClientApp.class, args); System.out.println("\nSa-Token SSO模式一 Client端启动成功"); + + System.out.println(); + System.out.println("---------------------- Solon Sa-Token SSO 模式一 Client 端启动成功 ----------------------"); + System.out.println("配置信息:" + SaSsoManager.getClientConfig()); + System.out.println("测试访问应用端一: http://s1.stp.com:9001"); + System.out.println("测试访问应用端二: http://s2.stp.com:9001"); + System.out.println("测试访问应用端三: http://s3.stp.com:9001"); + System.out.println("测试前需要根据官网文档修改hosts文件,测试账号密码:sa / 123456"); + System.out.println(); } } \ No newline at end of file diff --git a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso1-client-solon/src/main/resources/app.yml b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso1-client-solon/src/main/resources/app.yml index b0887401..d2bb8247 100644 --- a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso1-client-solon/src/main/resources/app.yml +++ b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso1-client-solon/src/main/resources/app.yml @@ -6,16 +6,14 @@ server: sa-token: # SSO-相关配置 sso-client: - # SSO-Server端-单点登录授权地址 - auth-url: http://sso.stp.com:9000/sso/auth - # SSO-Server端-单点注销地址 - slo-url: http://sso.stp.com:9000/sso/signout + # SSO-Server端 - 主机地址 + server-url: http://sso.stp.com:9000 # 配置 Sa-Token 单独使用的Redis连接 (此处需要和SSO-Server端连接同一个Redis) sa-token.dao: #名字可以随意取 redis: server: "localhost:6379" - password: 123456 +# password: 123456 db: 1 maxTotal: 200 diff --git a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/pom.xml b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/pom.xml index a7dc10c9..66048e33 100644 --- a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/pom.xml +++ b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/pom.xml @@ -47,6 +47,13 @@ sa-token-redisx ${sa-token.version} + + + + org.noear + forest-solon-plugin + + diff --git a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/src/main/java/com/pj/SaConfig.java b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/src/main/java/com/pj/SaConfig.java index 6031f505..03b64a33 100644 --- a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/src/main/java/com/pj/SaConfig.java +++ b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/src/main/java/com/pj/SaConfig.java @@ -2,8 +2,11 @@ package com.pj; import cn.dev33.satoken.dao.SaTokenDao; import cn.dev33.satoken.dao.SaTokenDaoOfRedis; +import cn.dev33.satoken.sso.config.SaSsoClientConfig; +import com.dtflys.forest.Forest; import org.noear.solon.annotation.Bean; import org.noear.solon.annotation.Configuration; +import org.noear.solon.annotation.Init; import org.noear.solon.annotation.Inject; /** @@ -19,4 +22,16 @@ public class SaConfig { public SaTokenDao saTokenDaoInit(@Inject("${sa-token.dao.redis}") SaTokenDaoOfRedis saTokenDao) { return saTokenDao; } + + @Bean + public void configSso(SaSsoClientConfig ssoClient) { + // 配置Http请求处理器 + ssoClient.sendHttp = url -> { + System.out.println("------ 发起请求:" + url); + String resStr = Forest.get(url).executeAsString(); + System.out.println("------ 请求结果:" + resStr); + return resStr; + }; + } + } diff --git a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/src/main/java/com/pj/SaSso2ClientApp.java b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/src/main/java/com/pj/SaSso2ClientApp.java index 8e04700f..a0ac5dfd 100644 --- a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/src/main/java/com/pj/SaSso2ClientApp.java +++ b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/src/main/java/com/pj/SaSso2ClientApp.java @@ -1,6 +1,7 @@ package com.pj; +import cn.dev33.satoken.sso.SaSsoManager; import org.noear.solon.Solon; import org.noear.solon.annotation.SolonMain; @@ -9,7 +10,15 @@ public class SaSso2ClientApp { public static void main(String[] args) { Solon.start(SaSso2ClientApp.class, args); - System.out.println("\nSa-Token SSO模式二 Client端启动成功"); + + System.out.println(); + System.out.println("---------------------- Solon Sa-Token SSO 模式二 Client 端启动成功 ----------------------"); + System.out.println("配置信息:" + SaSsoManager.getClientConfig()); + System.out.println("测试访问应用端一: http://sa-sso-client1.com:9002"); + System.out.println("测试访问应用端二: http://sa-sso-client2.com:9002"); + System.out.println("测试访问应用端三: http://sa-sso-client3.com:9002"); + System.out.println("测试前需要根据官网文档修改hosts文件,测试账号密码:sa / 123456"); + System.out.println(); } } \ No newline at end of file diff --git a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/src/main/resources/app.yml b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/src/main/resources/app.yml index d509817c..33875b88 100644 --- a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/src/main/resources/app.yml +++ b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso2-client-solon/src/main/resources/app.yml @@ -6,17 +6,20 @@ server: sa-token: # SSO-相关配置 sso-client: - # SSO-Server端 统一认证地址 - auth-url: http://sa-sso-server.com:9000/sso/auth + # SSO-Server端 主机地址 + server-url: http://sa-sso-server.com:9000 # auth-url: http://127.0.0.1:8848/sa-token-demo-sso-server-h5/sso-auth.html # 是否打开单点注销接口 is-slo: true + sign: + # API 接口调用秘钥 + secret-key: kQwIOrYvnXmSDkwEiFngrKidMcdrgKor # 配置 Sa-Token 单独使用的Redis连接 (此处需要和SSO-Server端连接同一个Redis) sa-token.dao: #名字可以随意取 redis: server: "localhost:6379" - password: 123456 +# password: 123456 db: 1 maxTotal: 200 diff --git a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/java/com/pj/SaSso3ClientApp.java b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/java/com/pj/SaSso3ClientApp.java index f30e4a25..4f72b3e7 100644 --- a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/java/com/pj/SaSso3ClientApp.java +++ b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/java/com/pj/SaSso3ClientApp.java @@ -1,5 +1,6 @@ package com.pj; +import cn.dev33.satoken.sso.SaSsoManager; import org.noear.solon.Solon; import org.noear.solon.annotation.SolonMain; @@ -8,7 +9,15 @@ public class SaSso3ClientApp { public static void main(String[] args) { Solon.start(SaSso3ClientApp.class, args); - System.out.println("\nSa-Token SSO模式三 Client端启动成功"); + + System.out.println(); + System.out.println("---------------------- Sa-Token SSO 模式三 Client 端启动成功 ----------------------"); + System.out.println("配置信息:" + SaSsoManager.getClientConfig()); + System.out.println("测试访问应用端一: http://sa-sso-client1.com:9003"); + System.out.println("测试访问应用端二: http://sa-sso-client2.com:9003"); + System.out.println("测试访问应用端三: http://sa-sso-client3.com:9003"); + System.out.println("测试前需要根据官网文档修改hosts文件,测试账号密码:sa / 123456"); + System.out.println(); } } \ No newline at end of file diff --git a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/java/com/pj/sso/SaSsoAutoConfigure.java b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/java/com/pj/sso/SaSsoAutoConfigure.java index 2d625b4e..f7795635 100644 --- a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/java/com/pj/sso/SaSsoAutoConfigure.java +++ b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/java/com/pj/sso/SaSsoAutoConfigure.java @@ -1,50 +1,50 @@ -package com.pj.sso; - -import cn.dev33.satoken.sso.SaSsoManager; -import cn.dev33.satoken.sso.config.SaSsoClientConfig; -import cn.dev33.satoken.sso.processor.SaSsoClientProcessor; -import cn.dev33.satoken.sso.template.SaSsoClientTemplate; -import org.noear.solon.annotation.Bean; -import org.noear.solon.annotation.Condition; -import org.noear.solon.annotation.Configuration; -import org.noear.solon.annotation.Inject; - -/** - * solon 的 sso 适配,在 cn.dev33:sa-token-solon-plugin:1.34.0 里还没有。(临时加这个类) - * - * //todo: 如果使用 org.noear:sa-token-solon-plugin:xxx ,则需要删掉这个类 - * - * @author noear - * @since 2.0 - */ -@Condition(onClass = SaSsoManager.class) -@Configuration -public class SaSsoAutoConfigure { - /** - * 获取 SSO 配置Bean - * */ - @Bean - public SaSsoClientConfig getConfig(@Inject(value = "${sa-token.sso-client}",required = false) SaSsoClientConfig ssoConfig) { - return ssoConfig; - } - - /** - * 注入 Sa-Token-SSO 配置Bean - * - * @param saSsoConfig 配置对象 - */ - @Bean - public void setSaSsoConfig(@Inject(required = false) SaSsoClientConfig saSsoConfig) { - SaSsoManager.setClientConfig(saSsoConfig); - } - - /** - * 注入 Sa-Token-SSO 单点登录模块 Bean - * - * @param ssoClientTemplate ssoClientTemplate对象 - */ - @Bean - public void setSaSsoClientTemplate(@Inject(required = false) SaSsoClientTemplate ssoClientTemplate) { - SaSsoClientProcessor.instance.ssoClientTemplate = ssoClientTemplate; - } -} +//package com.pj.sso; +// +//import cn.dev33.satoken.sso.SaSsoManager; +//import cn.dev33.satoken.sso.config.SaSsoClientConfig; +//import cn.dev33.satoken.sso.processor.SaSsoClientProcessor; +//import cn.dev33.satoken.sso.template.SaSsoClientTemplate; +//import org.noear.solon.annotation.Bean; +//import org.noear.solon.annotation.Condition; +//import org.noear.solon.annotation.Configuration; +//import org.noear.solon.annotation.Inject; +// +///** +// * solon 的 sso 适配,在 cn.dev33:sa-token-solon-plugin:1.34.0 里还没有。(临时加这个类) +// * +// * //todo: 如果使用 org.noear:sa-token-solon-plugin:xxx ,则需要删掉这个类 +// * +// * @author noear +// * @since 2.0 +// */ +//@Condition(onClass = SaSsoManager.class) +//@Configuration +//public class SaSsoAutoConfigure { +// /** +// * 获取 SSO 配置Bean +// * */ +// @Bean +// public SaSsoClientConfig getConfig(@Inject(value = "${sa-token.sso-client}",required = false) SaSsoClientConfig ssoConfig) { +// return ssoConfig; +// } +// +// /** +// * 注入 Sa-Token-SSO 配置Bean +// * +// * @param saSsoConfig 配置对象 +// */ +// @Bean +// public void setSaSsoConfig(@Inject(required = false) SaSsoClientConfig saSsoConfig) { +// SaSsoManager.setClientConfig(saSsoConfig); +// } +// +// /** +// * 注入 Sa-Token-SSO 单点登录模块 Bean +// * +// * @param ssoClientTemplate ssoClientTemplate对象 +// */ +// @Bean +// public void setSaSsoClientTemplate(@Inject(required = false) SaSsoClientTemplate ssoClientTemplate) { +// SaSsoClientProcessor.instance.ssoClientTemplate = ssoClientTemplate; +// } +//} diff --git a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/java/com/pj/sso/SsoConfig.java b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/java/com/pj/sso/SsoConfig.java index bb8a0a85..1f656d62 100644 --- a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/java/com/pj/sso/SsoConfig.java +++ b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/java/com/pj/sso/SsoConfig.java @@ -16,7 +16,9 @@ public class SsoConfig { // 配置Http请求处理器 ssoClient.sendHttp = url -> { System.out.println("------ 发起请求:" + url); - return Forest.get(url).executeAsString(); + String resStr = Forest.get(url).executeAsString(); + System.out.println("------ 请求结果:" + resStr); + return resStr; }; } } diff --git a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/resources/app.yml b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/resources/app.yml index b64d298c..7bfeb9d3 100644 --- a/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/resources/app.yml +++ b/sa-token-demo/sa-token-demo-sso-for-solon/sa-token-demo-sso3-client-solon/src/main/resources/app.yml @@ -6,27 +6,22 @@ server: sa-token: # SSO-相关配置 sso-client: - # SSO-Server端 统一认证地址 - auth-url: http://sa-sso-server.com:9000/sso/auth + # SSO-Server端 主机地址 + server-url: http://sa-sso-server.com:9000 # 使用Http请求校验ticket is-http: true - # SSO-Server端 ticket校验地址 - check-ticket-url: http://sa-sso-server.com:9000/sso/checkTicket # 打开单点注销功能 is-slo: true - # 单点注销地址 - slo-url: http://sa-sso-server.com:9000/sso/signout + sign: # 接口调用秘钥 - secretkey: kQwIOrYvnXmSDkwEiFngrKidMcdrgKor - # SSO-Server端 查询userinfo地址 - userinfo-url: http://sa-sso-server.com:9000/sso/userinfo + secret-key: kQwIOrYvnXmSDkwEiFngrKidMcdrgKor # 配置 Sa-Token Dao(此处与SSO-Server端连接不同的Redis) sa-token.dao: #名字可以随意取 redis: server: "localhost:6379" - password: 123456 +# password: 123456 db: 2 maxTotal: 200 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 1f8dc60d..4cd41f73 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 @@ -21,12 +21,15 @@ import cn.dev33.satoken.httpauth.basic.SaHttpBasicUtil; import cn.dev33.satoken.config.SaTokenConfig; import cn.dev33.satoken.context.second.SaTokenSecondContextCreator; import cn.dev33.satoken.dao.SaTokenDao; +import cn.dev33.satoken.httpauth.digest.SaHttpDigestTemplate; +import cn.dev33.satoken.httpauth.digest.SaHttpDigestUtil; import cn.dev33.satoken.json.SaJsonTemplate; import cn.dev33.satoken.listener.SaTokenEventCenter; import cn.dev33.satoken.listener.SaTokenListener; import cn.dev33.satoken.log.SaLog; import cn.dev33.satoken.same.SaSameTemplate; import cn.dev33.satoken.sign.SaSignTemplate; +import cn.dev33.satoken.solon.json.SaJsonTemplateForSnack3; import cn.dev33.satoken.solon.model.SaContextForSolon; import cn.dev33.satoken.solon.oauth2.SaOAuth2AutoConfigure; import cn.dev33.satoken.solon.sso.SaSsoAutoConfigure; @@ -64,6 +67,9 @@ public class XPluginImp implements Plugin { // 注入上下文Bean SaManager.setSaTokenContext(new SaContextForSolon()); + // 注入JSON解析器Bean + SaManager.setSaJsonTemplate(new SaJsonTemplateForSnack3()); + //注入配置Bean SaTokenConfig saTokenConfig = Solon.cfg().getBean("sa-token", SaTokenConfig.class); if (saTokenConfig != null) { @@ -89,7 +95,6 @@ public class XPluginImp implements Plugin { SaTokenEventCenter.registerListener(sl); }); - // 注入权限认证 Bean context.getBeanAsync(StpInterface.class, bean -> { SaManager.setStpInterface(bean); @@ -115,6 +120,11 @@ public class XPluginImp implements Plugin { SaHttpBasicUtil.saHttpBasicTemplate = bean; }); + // Sa-Token Http Digest 认证模块 Bean + context.getBeanAsync(SaHttpDigestTemplate.class, bean -> { + SaHttpDigestUtil.saHttpDigestTemplate = bean; + }); + // Sa-Token JSON 转换器 Bean context.getBeanAsync(SaJsonTemplate.class, bean -> { SaManager.setSaJsonTemplate(bean); @@ -129,5 +139,6 @@ public class XPluginImp implements Plugin { context.getBeanAsync(StpLogic.class, bean -> { StpUtil.setStpLogic(bean); }); + } } \ No newline at end of file