diff --git a/README.md b/README.md index a5afe8e7..2a0a5301 100644 --- a/README.md +++ b/README.md @@ -151,11 +151,11 @@ Sa-Token秉承着开放的思想,欢迎大家为框架添砖加瓦: ## 使用Sa-Token的开源项目 -[**[ sa-plus]** 一个基于springboot架构的快速开发框架,内置代码生成器](https://gitee.com/click33/sa-plus) +[**[ sa-plus ]** 一个基于springboot架构的快速开发框架,内置代码生成器](https://gitee.com/click33/sa-plus) -[**[ jthink]** 一个基于springboot+sa-token+thymeleaf的博客系统](https://gitee.com/wtsoftware/jthink) +[**[ jthink ]** 一个基于springboot+sa-token+thymeleaf的博客系统](https://gitee.com/wtsoftware/jthink) -[**[ dcy-fast]** 一个基于springboot+sa-token+mybatis-plus的后台管理系统,前端vue-element-admin,并且内置代码生成器](https://gitee.com/dcy421/dcy-fast) +[**[ dcy-fast ]** 一个基于springboot+sa-token+mybatis-plus的后台管理系统,前端vue-element-admin,并且内置代码生成器](https://gitee.com/dcy421/dcy-fast) 如果您的项目使用了Sa-Token,欢迎提交pr diff --git a/mvn clean.bat b/mvn clean.bat index b875dfd2..6c5badfc 100644 --- a/mvn clean.bat +++ b/mvn clean.bat @@ -33,6 +33,35 @@ cd sa-token-demo-quick-login call mvn clean cd .. +cd sa-token-demo-alone-redis +call mvn clean +cd .. + +cd sa-token-demo-sso1 +call mvn clean +cd .. + +cd sa-token-demo-sso2-server +call mvn clean +cd .. + +cd sa-token-demo-sso2-client +call mvn clean +cd .. + +cd sa-token-demo-sso3-server +call mvn clean +cd .. + +cd sa-token-demo-sso3-client +call mvn clean +cd .. + + + + + + cd .. :: 最后打印 diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/config/SaSsoConfig.java b/sa-token-core/src/main/java/cn/dev33/satoken/config/SaSsoConfig.java index c6992683..eda4d726 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/config/SaSsoConfig.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/config/SaSsoConfig.java @@ -20,7 +20,7 @@ public class SaSsoConfig { public String allowUrl = "*"; /** - * 调用秘钥 + * 接口调用秘钥 (用于SSO模式三单点注销的接口通信身份校验) */ public String secretkey; @@ -30,12 +30,12 @@ public class SaSsoConfig { public String authUrl; /** - * SSO-Server端 Ticket校验地址 [模式三专用配置] + * SSO-Server端 Ticket校验地址 */ public String checkTicketUrl; /** - * SSO-Server端 单点注销地址 [模式三专用配置] + * SSO-Server端 单点注销地址 */ public String sloUrl; @@ -74,14 +74,14 @@ public class SaSsoConfig { } /** - * @return 调用秘钥 + * @return 调用秘钥 (用于SSO模式三单点注销的接口通信身份校验) */ public String getSecretkey() { return secretkey; } /** - * @param secretkey 调用秘钥 + * @param secretkey 调用秘钥 (用于SSO模式三单点注销的接口通信身份校验) * @return 对象自身 */ public SaSsoConfig setSecretkey(String secretkey) { diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/sso/SaSsoInterface.java b/sa-token-core/src/main/java/cn/dev33/satoken/sso/SaSsoInterface.java index bd15f250..f5a5b46e 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/sso/SaSsoInterface.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/sso/SaSsoInterface.java @@ -41,7 +41,11 @@ public interface SaSsoInterface { * @param ticket Ticket码 */ public default void deleteTicket(String ticket) { - SaManager.getSaTokenDao().delete(splicingKeyTicketToId(ticket)); + Object loginId = getLoginId(ticket); + if(loginId != null) { + SaManager.getSaTokenDao().delete(splicingKeyTicketToId(ticket)); + SaManager.getSaTokenDao().delete(splicingKeyIdToTicket(loginId)); + } } /** @@ -279,7 +283,8 @@ public interface SaSsoInterface { forEachSloUrl(loginId, fun); // step.3 Server端注销 - StpUtil.logoutByLoginId(loginId); + // StpUtil.logoutByLoginId(loginId); + StpUtil.logoutByTokenValue(StpUtil.getTokenValueByLoginId(loginId)); } diff --git a/sa-token-doc/doc/sso/sso-type3.md b/sa-token-doc/doc/sso/sso-type3.md index 58c063a4..85b6daa4 100644 --- a/sa-token-doc/doc/sso/sso-type3.md +++ b/sa-token-doc/doc/sso/sso-type3.md @@ -178,7 +178,9 @@ public class SsoClientLogoutController { } ``` -并在 `application.yml` 增加配置: API调用秘钥 和 单点注销接口URL +!> `logoutByLoginId(id)`为踢人下线,如果要彻底清除数据,可更换为`StpUtil.logoutByTokenValue(StpUtil.getTokenValueByLoginId(loginId));` + +并在 `application.yml` 增加配置: `API调用秘钥` 和 `单点注销接口URL` ``` yml sa-token: sso: diff --git a/sa-token-doc/doc/use/config.md b/sa-token-doc/doc/use/config.md index 60b501d5..76b4b127 100644 --- a/sa-token-doc/doc/use/config.md +++ b/sa-token-doc/doc/use/config.md @@ -79,3 +79,25 @@ public class SaTokenConfigure { | isPrint | Boolean | true | 是否在初始化配置时打印版本字符画 | | isLog | Boolean | false | 是否打印操作日志 | | jwtSecretKey | String | null | jwt秘钥 (只有集成 sa-token-temp-jwt 模块时此参数才会生效) | +| sso | Object | new SaSsoConfig() | SSO 单点登录相关配置 | + + +### 单点登录相关配置 +| 参数名称 | 类型 | 默认值 | 说明 | +| :-------- | :-------- | :-------- | :-------- | +| ticketTimeout | long | 300 | Ticket有效期 (单位: 秒) | +| allowUrl | String | * | 所有允许的授权回调地址,多个用逗号隔开 (不在此列表中的URL将禁止下放ticket),[详情请参考 SSO模式二的域名校验章节] | +| secretkey | String | null | 调用秘钥 (用于SSO模式三单点注销的接口通信身份校验) | +| authUrl | String | null | SSO-Server端 单点登录地址 | +| checkTicketUrl| String | null | SSO-Server端 Ticket校验地址 | +| sloUrl | String | null | SSO-Server端 单点注销地址 | + +配置示例: +``` yml +# sa-token配置 +sa-token: + # SSO-相关配置 + sso: + # SSO-Server端 单点登录地址 + auth-url: http://sa-sso-server.com:9000/ssoAuth +``` \ No newline at end of file