优化算法

This commit is contained in:
click33 2021-07-02 15:30:43 +08:00
parent 40b82ce602
commit b836e1f75a
6 changed files with 69 additions and 11 deletions

View File

@ -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

View File

@ -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 ..
:: 最后打印

View File

@ -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) {

View File

@ -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));
}

View File

@ -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:

View File

@ -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
```