升级优化一下 solon 相关集成 demo
This commit is contained in:
@@ -40,7 +40,7 @@
|
|||||||
<artifactId>sa-token-solon-plugin</artifactId>
|
<artifactId>sa-token-solon-plugin</artifactId>
|
||||||
<version>${sa-token.version}</version>
|
<version>${sa-token.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- sa-token整合redis (使用jdk默认序列化方式) -->
|
<!-- sa-token整合redis (使用jdk默认序列化方式) -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package com.pj;
|
|||||||
|
|
||||||
|
|
||||||
import cn.dev33.satoken.SaManager;
|
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.Solon;
|
||||||
import org.noear.solon.annotation.SolonMain;
|
import org.noear.solon.annotation.SolonMain;
|
||||||
|
|
||||||
@@ -16,5 +18,13 @@ public class SaTokenDemoApp {
|
|||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
Solon.start(SaTokenDemoApp.class, args);
|
Solon.start(SaTokenDemoApp.class, args);
|
||||||
System.out.println("\n启动成功:Sa-Token配置如下:" + SaManager.getConfig());
|
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"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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 + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
+9
-9
@@ -1,15 +1,13 @@
|
|||||||
package com.pj.satoken;
|
package com.pj.satoken;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.dev33.satoken.context.SaHolder;
|
||||||
import cn.dev33.satoken.dao.SaTokenDao;
|
import cn.dev33.satoken.dao.SaTokenDao;
|
||||||
import cn.dev33.satoken.dao.SaTokenDaoOfRedis;
|
import cn.dev33.satoken.dao.SaTokenDaoOfRedis;
|
||||||
import cn.dev33.satoken.solon.integration.SaTokenInterceptor;
|
import cn.dev33.satoken.solon.integration.SaTokenInterceptor;
|
||||||
|
import com.pj.util.AjaxJson;
|
||||||
import org.noear.solon.annotation.Bean;
|
import org.noear.solon.annotation.Bean;
|
||||||
import org.noear.solon.annotation.Configuration;
|
import org.noear.solon.annotation.Configuration;
|
||||||
|
|
||||||
import com.pj.util.AjaxJson;
|
|
||||||
|
|
||||||
import cn.dev33.satoken.context.SaHolder;
|
|
||||||
import org.noear.solon.annotation.Inject;
|
import org.noear.solon.annotation.Inject;
|
||||||
|
|
||||||
|
|
||||||
@@ -59,9 +57,11 @@ public class SaTokenConfigure {
|
|||||||
;
|
;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//如果需要 redis dao,加这段代表
|
|
||||||
// @Bean
|
//如果需要 redis dao,加这段代表
|
||||||
// public SaTokenDao saTokenDaoInit(@Inject("${sa-token-dao.redis}") SaTokenDaoOfRedis saTokenDao) {
|
@Bean
|
||||||
// return saTokenDao;
|
public SaTokenDao saTokenDaoInit(@Inject("${sa-token-dao.redis}") SaTokenDaoOfRedis saTokenDao) {
|
||||||
// }
|
return saTokenDao;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
<!-- 定义 Sa-Token 版本号 -->
|
<!-- 定义 Sa-Token 版本号 -->
|
||||||
<properties>
|
<properties>
|
||||||
<sa-token.version>1.38.0</sa-token.version>
|
<sa-token.version>1.38.0</sa-token.version>
|
||||||
|
<solon.version>2.7.0</solon.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
@@ -48,7 +49,7 @@
|
|||||||
<artifactId>sa-token-redisx</artifactId>
|
<artifactId>sa-token-redisx</artifactId>
|
||||||
<version>${sa-token.version}</version>
|
<version>${sa-token.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- 视图引擎(在前后端不分离模式下提供视图支持) -->
|
<!-- 视图引擎(在前后端不分离模式下提供视图支持) -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.noear</groupId>
|
<groupId>org.noear</groupId>
|
||||||
|
|||||||
+8
-1
@@ -1,6 +1,7 @@
|
|||||||
package com.pj;
|
package com.pj;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.dev33.satoken.sso.SaSsoManager;
|
||||||
import org.noear.solon.Solon;
|
import org.noear.solon.Solon;
|
||||||
import org.noear.solon.annotation.SolonMain;
|
import org.noear.solon.annotation.SolonMain;
|
||||||
|
|
||||||
@@ -9,7 +10,13 @@ public class SaSsoServerApp {
|
|||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
Solon.start(SaSsoServerApp.class, 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();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+4
-3
@@ -44,12 +44,13 @@ public class SsoConfig {
|
|||||||
return SaResult.error("登录失败!");
|
return SaResult.error("登录失败!");
|
||||||
};
|
};
|
||||||
|
|
||||||
// 配置 Http 请求处理器 (在模式三的单点注销功能下用到,如不需要可以注释掉)
|
// 配置 Http 请求处理器
|
||||||
ssoServer.sendHttp = url -> {
|
ssoServer.sendHttp = url -> {
|
||||||
try {
|
try {
|
||||||
// 发起 http 请求
|
|
||||||
System.out.println("------ 发起请求:" + url);
|
System.out.println("------ 发起请求:" + url);
|
||||||
return Forest.get(url).executeAsString();
|
String resStr = Forest.get(url).executeAsString();
|
||||||
|
System.out.println("------ 请求结果:" + resStr);
|
||||||
|
return resStr;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@ sa-token:
|
|||||||
sa-token.dao: #名字可以随意取
|
sa-token.dao: #名字可以随意取
|
||||||
redis:
|
redis:
|
||||||
server: "localhost:6379"
|
server: "localhost:6379"
|
||||||
password: 123456
|
# password: 123456
|
||||||
db: 1
|
db: 1
|
||||||
maxTotal: 200
|
maxTotal: 200
|
||||||
|
|
||||||
|
|||||||
+10
@@ -1,6 +1,7 @@
|
|||||||
package com.pj;
|
package com.pj;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.dev33.satoken.sso.SaSsoManager;
|
||||||
import org.noear.solon.Solon;
|
import org.noear.solon.Solon;
|
||||||
import org.noear.solon.annotation.SolonMain;
|
import org.noear.solon.annotation.SolonMain;
|
||||||
|
|
||||||
@@ -15,6 +16,15 @@ public class SaSso1ClientApp {
|
|||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
Solon.start(SaSso1ClientApp.class, args);
|
Solon.start(SaSso1ClientApp.class, args);
|
||||||
System.out.println("\nSa-Token SSO模式一 Client端启动成功");
|
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+3
-5
@@ -6,16 +6,14 @@ server:
|
|||||||
sa-token:
|
sa-token:
|
||||||
# SSO-相关配置
|
# SSO-相关配置
|
||||||
sso-client:
|
sso-client:
|
||||||
# SSO-Server端-单点登录授权地址
|
# SSO-Server端 - 主机地址
|
||||||
auth-url: http://sso.stp.com:9000/sso/auth
|
server-url: http://sso.stp.com:9000
|
||||||
# SSO-Server端-单点注销地址
|
|
||||||
slo-url: http://sso.stp.com:9000/sso/signout
|
|
||||||
|
|
||||||
# 配置 Sa-Token 单独使用的Redis连接 (此处需要和SSO-Server端连接同一个Redis)
|
# 配置 Sa-Token 单独使用的Redis连接 (此处需要和SSO-Server端连接同一个Redis)
|
||||||
sa-token.dao: #名字可以随意取
|
sa-token.dao: #名字可以随意取
|
||||||
redis:
|
redis:
|
||||||
server: "localhost:6379"
|
server: "localhost:6379"
|
||||||
password: 123456
|
# password: 123456
|
||||||
db: 1
|
db: 1
|
||||||
maxTotal: 200
|
maxTotal: 200
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,13 @@
|
|||||||
<artifactId>sa-token-redisx</artifactId>
|
<artifactId>sa-token-redisx</artifactId>
|
||||||
<version>${sa-token.version}</version>
|
<version>${sa-token.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Http 请求工具 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.noear</groupId>
|
||||||
|
<artifactId>forest-solon-plugin</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+15
@@ -2,8 +2,11 @@ package com.pj;
|
|||||||
|
|
||||||
import cn.dev33.satoken.dao.SaTokenDao;
|
import cn.dev33.satoken.dao.SaTokenDao;
|
||||||
import cn.dev33.satoken.dao.SaTokenDaoOfRedis;
|
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.Bean;
|
||||||
import org.noear.solon.annotation.Configuration;
|
import org.noear.solon.annotation.Configuration;
|
||||||
|
import org.noear.solon.annotation.Init;
|
||||||
import org.noear.solon.annotation.Inject;
|
import org.noear.solon.annotation.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,4 +22,16 @@ public class SaConfig {
|
|||||||
public SaTokenDao saTokenDaoInit(@Inject("${sa-token.dao.redis}") SaTokenDaoOfRedis saTokenDao) {
|
public SaTokenDao saTokenDaoInit(@Inject("${sa-token.dao.redis}") SaTokenDaoOfRedis saTokenDao) {
|
||||||
return 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;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-1
@@ -1,6 +1,7 @@
|
|||||||
package com.pj;
|
package com.pj;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.dev33.satoken.sso.SaSsoManager;
|
||||||
import org.noear.solon.Solon;
|
import org.noear.solon.Solon;
|
||||||
import org.noear.solon.annotation.SolonMain;
|
import org.noear.solon.annotation.SolonMain;
|
||||||
|
|
||||||
@@ -9,7 +10,15 @@ public class SaSso2ClientApp {
|
|||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
Solon.start(SaSso2ClientApp.class, 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();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+6
-3
@@ -6,17 +6,20 @@ server:
|
|||||||
sa-token:
|
sa-token:
|
||||||
# SSO-相关配置
|
# SSO-相关配置
|
||||||
sso-client:
|
sso-client:
|
||||||
# SSO-Server端 统一认证地址
|
# SSO-Server端 主机地址
|
||||||
auth-url: http://sa-sso-server.com:9000/sso/auth
|
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
|
# auth-url: http://127.0.0.1:8848/sa-token-demo-sso-server-h5/sso-auth.html
|
||||||
# 是否打开单点注销接口
|
# 是否打开单点注销接口
|
||||||
is-slo: true
|
is-slo: true
|
||||||
|
sign:
|
||||||
|
# API 接口调用秘钥
|
||||||
|
secret-key: kQwIOrYvnXmSDkwEiFngrKidMcdrgKor
|
||||||
|
|
||||||
# 配置 Sa-Token 单独使用的Redis连接 (此处需要和SSO-Server端连接同一个Redis)
|
# 配置 Sa-Token 单独使用的Redis连接 (此处需要和SSO-Server端连接同一个Redis)
|
||||||
sa-token.dao: #名字可以随意取
|
sa-token.dao: #名字可以随意取
|
||||||
redis:
|
redis:
|
||||||
server: "localhost:6379"
|
server: "localhost:6379"
|
||||||
password: 123456
|
# password: 123456
|
||||||
db: 1
|
db: 1
|
||||||
maxTotal: 200
|
maxTotal: 200
|
||||||
|
|
||||||
|
|||||||
+10
-1
@@ -1,5 +1,6 @@
|
|||||||
package com.pj;
|
package com.pj;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.sso.SaSsoManager;
|
||||||
import org.noear.solon.Solon;
|
import org.noear.solon.Solon;
|
||||||
import org.noear.solon.annotation.SolonMain;
|
import org.noear.solon.annotation.SolonMain;
|
||||||
|
|
||||||
@@ -8,7 +9,15 @@ public class SaSso3ClientApp {
|
|||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
Solon.start(SaSso3ClientApp.class, 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();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+50
-50
@@ -1,50 +1,50 @@
|
|||||||
package com.pj.sso;
|
//package com.pj.sso;
|
||||||
|
//
|
||||||
import cn.dev33.satoken.sso.SaSsoManager;
|
//import cn.dev33.satoken.sso.SaSsoManager;
|
||||||
import cn.dev33.satoken.sso.config.SaSsoClientConfig;
|
//import cn.dev33.satoken.sso.config.SaSsoClientConfig;
|
||||||
import cn.dev33.satoken.sso.processor.SaSsoClientProcessor;
|
//import cn.dev33.satoken.sso.processor.SaSsoClientProcessor;
|
||||||
import cn.dev33.satoken.sso.template.SaSsoClientTemplate;
|
//import cn.dev33.satoken.sso.template.SaSsoClientTemplate;
|
||||||
import org.noear.solon.annotation.Bean;
|
//import org.noear.solon.annotation.Bean;
|
||||||
import org.noear.solon.annotation.Condition;
|
//import org.noear.solon.annotation.Condition;
|
||||||
import org.noear.solon.annotation.Configuration;
|
//import org.noear.solon.annotation.Configuration;
|
||||||
import org.noear.solon.annotation.Inject;
|
//import org.noear.solon.annotation.Inject;
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* solon 的 sso 适配,在 cn.dev33:sa-token-solon-plugin:1.34.0 里还没有。(临时加这个类)
|
// * solon 的 sso 适配,在 cn.dev33:sa-token-solon-plugin:1.34.0 里还没有。(临时加这个类)
|
||||||
*
|
// *
|
||||||
* //todo: 如果使用 org.noear:sa-token-solon-plugin:xxx ,则需要删掉这个类
|
// * //todo: 如果使用 org.noear:sa-token-solon-plugin:xxx ,则需要删掉这个类
|
||||||
*
|
// *
|
||||||
* @author noear
|
// * @author noear
|
||||||
* @since 2.0
|
// * @since 2.0
|
||||||
*/
|
// */
|
||||||
@Condition(onClass = SaSsoManager.class)
|
//@Condition(onClass = SaSsoManager.class)
|
||||||
@Configuration
|
//@Configuration
|
||||||
public class SaSsoAutoConfigure {
|
//public class SaSsoAutoConfigure {
|
||||||
/**
|
// /**
|
||||||
* 获取 SSO 配置Bean
|
// * 获取 SSO 配置Bean
|
||||||
* */
|
// * */
|
||||||
@Bean
|
// @Bean
|
||||||
public SaSsoClientConfig getConfig(@Inject(value = "${sa-token.sso-client}",required = false) SaSsoClientConfig ssoConfig) {
|
// public SaSsoClientConfig getConfig(@Inject(value = "${sa-token.sso-client}",required = false) SaSsoClientConfig ssoConfig) {
|
||||||
return ssoConfig;
|
// return ssoConfig;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
/**
|
// /**
|
||||||
* 注入 Sa-Token-SSO 配置Bean
|
// * 注入 Sa-Token-SSO 配置Bean
|
||||||
*
|
// *
|
||||||
* @param saSsoConfig 配置对象
|
// * @param saSsoConfig 配置对象
|
||||||
*/
|
// */
|
||||||
@Bean
|
// @Bean
|
||||||
public void setSaSsoConfig(@Inject(required = false) SaSsoClientConfig saSsoConfig) {
|
// public void setSaSsoConfig(@Inject(required = false) SaSsoClientConfig saSsoConfig) {
|
||||||
SaSsoManager.setClientConfig(saSsoConfig);
|
// SaSsoManager.setClientConfig(saSsoConfig);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
/**
|
// /**
|
||||||
* 注入 Sa-Token-SSO 单点登录模块 Bean
|
// * 注入 Sa-Token-SSO 单点登录模块 Bean
|
||||||
*
|
// *
|
||||||
* @param ssoClientTemplate ssoClientTemplate对象
|
// * @param ssoClientTemplate ssoClientTemplate对象
|
||||||
*/
|
// */
|
||||||
@Bean
|
// @Bean
|
||||||
public void setSaSsoClientTemplate(@Inject(required = false) SaSsoClientTemplate ssoClientTemplate) {
|
// public void setSaSsoClientTemplate(@Inject(required = false) SaSsoClientTemplate ssoClientTemplate) {
|
||||||
SaSsoClientProcessor.instance.ssoClientTemplate = ssoClientTemplate;
|
// SaSsoClientProcessor.instance.ssoClientTemplate = ssoClientTemplate;
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|||||||
+3
-1
@@ -16,7 +16,9 @@ public class SsoConfig {
|
|||||||
// 配置Http请求处理器
|
// 配置Http请求处理器
|
||||||
ssoClient.sendHttp = url -> {
|
ssoClient.sendHttp = url -> {
|
||||||
System.out.println("------ 发起请求:" + url);
|
System.out.println("------ 发起请求:" + url);
|
||||||
return Forest.get(url).executeAsString();
|
String resStr = Forest.get(url).executeAsString();
|
||||||
|
System.out.println("------ 请求结果:" + resStr);
|
||||||
|
return resStr;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-10
@@ -6,27 +6,22 @@ server:
|
|||||||
sa-token:
|
sa-token:
|
||||||
# SSO-相关配置
|
# SSO-相关配置
|
||||||
sso-client:
|
sso-client:
|
||||||
# SSO-Server端 统一认证地址
|
# SSO-Server端 主机地址
|
||||||
auth-url: http://sa-sso-server.com:9000/sso/auth
|
server-url: http://sa-sso-server.com:9000
|
||||||
# 使用Http请求校验ticket
|
# 使用Http请求校验ticket
|
||||||
is-http: true
|
is-http: true
|
||||||
# SSO-Server端 ticket校验地址
|
|
||||||
check-ticket-url: http://sa-sso-server.com:9000/sso/checkTicket
|
|
||||||
# 打开单点注销功能
|
# 打开单点注销功能
|
||||||
is-slo: true
|
is-slo: true
|
||||||
# 单点注销地址
|
sign:
|
||||||
slo-url: http://sa-sso-server.com:9000/sso/signout
|
|
||||||
# 接口调用秘钥
|
# 接口调用秘钥
|
||||||
secretkey: kQwIOrYvnXmSDkwEiFngrKidMcdrgKor
|
secret-key: kQwIOrYvnXmSDkwEiFngrKidMcdrgKor
|
||||||
# SSO-Server端 查询userinfo地址
|
|
||||||
userinfo-url: http://sa-sso-server.com:9000/sso/userinfo
|
|
||||||
|
|
||||||
|
|
||||||
# 配置 Sa-Token Dao(此处与SSO-Server端连接不同的Redis)
|
# 配置 Sa-Token Dao(此处与SSO-Server端连接不同的Redis)
|
||||||
sa-token.dao: #名字可以随意取
|
sa-token.dao: #名字可以随意取
|
||||||
redis:
|
redis:
|
||||||
server: "localhost:6379"
|
server: "localhost:6379"
|
||||||
password: 123456
|
# password: 123456
|
||||||
db: 2
|
db: 2
|
||||||
maxTotal: 200
|
maxTotal: 200
|
||||||
|
|
||||||
|
|||||||
+12
-1
@@ -21,12 +21,15 @@ import cn.dev33.satoken.httpauth.basic.SaHttpBasicUtil;
|
|||||||
import cn.dev33.satoken.config.SaTokenConfig;
|
import cn.dev33.satoken.config.SaTokenConfig;
|
||||||
import cn.dev33.satoken.context.second.SaTokenSecondContextCreator;
|
import cn.dev33.satoken.context.second.SaTokenSecondContextCreator;
|
||||||
import cn.dev33.satoken.dao.SaTokenDao;
|
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.json.SaJsonTemplate;
|
||||||
import cn.dev33.satoken.listener.SaTokenEventCenter;
|
import cn.dev33.satoken.listener.SaTokenEventCenter;
|
||||||
import cn.dev33.satoken.listener.SaTokenListener;
|
import cn.dev33.satoken.listener.SaTokenListener;
|
||||||
import cn.dev33.satoken.log.SaLog;
|
import cn.dev33.satoken.log.SaLog;
|
||||||
import cn.dev33.satoken.same.SaSameTemplate;
|
import cn.dev33.satoken.same.SaSameTemplate;
|
||||||
import cn.dev33.satoken.sign.SaSignTemplate;
|
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.model.SaContextForSolon;
|
||||||
import cn.dev33.satoken.solon.oauth2.SaOAuth2AutoConfigure;
|
import cn.dev33.satoken.solon.oauth2.SaOAuth2AutoConfigure;
|
||||||
import cn.dev33.satoken.solon.sso.SaSsoAutoConfigure;
|
import cn.dev33.satoken.solon.sso.SaSsoAutoConfigure;
|
||||||
@@ -64,6 +67,9 @@ public class XPluginImp implements Plugin {
|
|||||||
// 注入上下文Bean
|
// 注入上下文Bean
|
||||||
SaManager.setSaTokenContext(new SaContextForSolon());
|
SaManager.setSaTokenContext(new SaContextForSolon());
|
||||||
|
|
||||||
|
// 注入JSON解析器Bean
|
||||||
|
SaManager.setSaJsonTemplate(new SaJsonTemplateForSnack3());
|
||||||
|
|
||||||
//注入配置Bean
|
//注入配置Bean
|
||||||
SaTokenConfig saTokenConfig = Solon.cfg().getBean("sa-token", SaTokenConfig.class);
|
SaTokenConfig saTokenConfig = Solon.cfg().getBean("sa-token", SaTokenConfig.class);
|
||||||
if (saTokenConfig != null) {
|
if (saTokenConfig != null) {
|
||||||
@@ -89,7 +95,6 @@ public class XPluginImp implements Plugin {
|
|||||||
SaTokenEventCenter.registerListener(sl);
|
SaTokenEventCenter.registerListener(sl);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// 注入权限认证 Bean
|
// 注入权限认证 Bean
|
||||||
context.getBeanAsync(StpInterface.class, bean -> {
|
context.getBeanAsync(StpInterface.class, bean -> {
|
||||||
SaManager.setStpInterface(bean);
|
SaManager.setStpInterface(bean);
|
||||||
@@ -115,6 +120,11 @@ public class XPluginImp implements Plugin {
|
|||||||
SaHttpBasicUtil.saHttpBasicTemplate = bean;
|
SaHttpBasicUtil.saHttpBasicTemplate = bean;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Sa-Token Http Digest 认证模块 Bean
|
||||||
|
context.getBeanAsync(SaHttpDigestTemplate.class, bean -> {
|
||||||
|
SaHttpDigestUtil.saHttpDigestTemplate = bean;
|
||||||
|
});
|
||||||
|
|
||||||
// Sa-Token JSON 转换器 Bean
|
// Sa-Token JSON 转换器 Bean
|
||||||
context.getBeanAsync(SaJsonTemplate.class, bean -> {
|
context.getBeanAsync(SaJsonTemplate.class, bean -> {
|
||||||
SaManager.setSaJsonTemplate(bean);
|
SaManager.setSaJsonTemplate(bean);
|
||||||
@@ -129,5 +139,6 @@ public class XPluginImp implements Plugin {
|
|||||||
context.getBeanAsync(StpLogic.class, bean -> {
|
context.getBeanAsync(StpLogic.class, bean -> {
|
||||||
StpUtil.setStpLogic(bean);
|
StpUtil.setStpLogic(bean);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user