优化文档

This commit is contained in:
click33 2024-05-06 10:33:42 +08:00
parent f4dda6eb6c
commit 83ac203631
4 changed files with 96 additions and 29 deletions

View File

@ -94,6 +94,7 @@ StpUtil.getSessionBySessionId("xxxx-xxxx-xxxx"); // 获取指定key的Session,
``` java
// Token 最低活跃频率
StpUtil.getTokenActiveTimeout(); // 获取当前 token 距离被冻结还剩多少时间 (单位: 秒)
StpUtil.getTokenLastActiveTime(); // 获取当前 token 最后活跃时间
StpUtil.checkActiveTimeout(); // 检查当前token 是否已经被冻结,如果是则抛出异常
StpUtil.updateLastActiveToNow(); // 续签当前token(将 [最后操作时间] 更新为当前时间戳)

View File

@ -22,7 +22,7 @@ http://{host}:{port}/sso/auth
| :-------- | :-------- | :-------- |
| redirect | 是 | 登录成功后的重定向地址,一般填写 location.href从哪来回哪去 |
| mode | 否 | 授权模式,取值 [simple, ticket]simple=登录后直接重定向ticket=带着ticket参数重定向默认值为ticket |
| client | 否 | 客户端标识,可不填,代表是一个匿名应用,若填写了,则校验 ticket 时也必须这个 client 才可以校验成功 |
| client | 否 | 客户端标识,可不填,代表是一个匿名应用,若填写了,则校验 ticket 时也必须这个 client 才可以校验成功 |
访问接口后有两种情况:
- 情况一:当前会话在 SSO 认证中心未登录,会进入登录页开始登录。
@ -60,6 +60,9 @@ http://{host}:{port}/sso/checkTicket
| ticket | 是 | 在步骤 1 中授权重定向时的 ticket 参数 |
| ssoLogoutCall | 否 | 单点注销时的回调通知地址只在SSO模式三单点注销时需要携带此参数|
| client | 否 | 客户端标识,可不填,代表是一个匿名应用,若填写了,则必须填写的和 `/sso/auth` 登录时填写的一致才可以校验成功 |
| timestamp | 是 | 当前时间戳13位 |
| nonce | 是 | 随机字符串 |
| sign | 是 | 签名,生成算法:`md5( [client={client值}&]nonce={随机字符串}&[ssoLogoutCall={单点注销回调地址}&]ticket={ticket值}&timestamp={13位时间戳}&key={secretkey秘钥} )` 注:[]内容代表可选 |
返回值场景:
- 校验成功时:
@ -68,7 +71,8 @@ http://{host}:{port}/sso/checkTicket
{
"code": 200,
"msg": "ok",
"data": "10001" // 此 ticket 指向的 loginId
"data": "10001", // 此 ticket 指向的 loginId
"remainSessionTimeout": 7200, // 此账号在 sso-server 端的会话剩余有效期单位s
}
```

View File

@ -176,8 +176,8 @@ body{font-size: 16px; color: #34495E; font-family: "Source Sans Pro","Helvetica
.com-box-you a img{min-width: 60%; max-width: 85%; vertical-align: middle; max-height: 100%;}
/* -------- Dromara 成员项目 --------- */
.table-show-pj{border: 1px #ddd solid; border-width: 1px 0 0 1px ;}
.table-show-pj a{flex: 0 0 16.5%; border: 1px #ddd solid; margin: 0; padding: 7px 0; overflow: hidden;}
.table-show-pj{border: 1px #d5d5d5 solid; border-width: 1px 0 0 1px ;}
.table-show-pj a{flex: 0 0 16.5%; border: 1px #d5d5d5 solid; margin: 0; padding: 7px 0; overflow: hidden;}
.table-show-pj a{border-width: 0 1px 1px 0px;}
.table-show-pj a img{min-width: 60%; max-width: 70%; }

View File

@ -4,7 +4,9 @@
---
### 方式1、在 application.yml 配置
### 1、配置方式
##### 方式1、在 application.yml 配置
<!---------------------------- tabs:start ---------------------------->
@ -52,7 +54,7 @@ sa-token.is-log=true
### 方式2、通过代码配置
##### 方式2、通过代码配置
<!------------------------------ tabs:start ------------------------------>
<!------------- tab:模式 1 ------------->
@ -108,7 +110,7 @@ public class SaTokenConfigure {
---
### 所有可配置项
### 2、核心包所有可配置项
**你不必立刻掌握整个表格,只需要在用到某个功能时再详细查阅它即可**
@ -141,7 +143,8 @@ public class SaTokenConfigure {
| basic | String | "" | Http Basic 认证的账号和密码 [参考Http Basic 认证](/up/basic-auth) |
| currDomain | String | null | 配置当前项目的网络访问地址 |
| checkSameToken | Boolean | false | 是否校验Same-Token部分rpc插件有效 |
| cookie | Object | new SaCookieConfig() | Cookie配置对象 |
| cookie | Object | new SaCookieConfig() | Cookie 配置对象 |
| sign | Object | new SaSignConfig() | API 签名配置对象 |
Cookie相关配置
@ -179,35 +182,90 @@ sa-token.cookie.sameSite=Lax
```
<!---------------------------- tabs:end ---------------------------->
Sign 参数签名相关配置:
### 单点登录相关配置
| 参数名称 | 类型 | 默认值 | 说明 |
| :-------- | :-------- | :-------- | :-------- |
| secretKey | String | null | API 调用签名秘钥 |
| timestampDisparity | long | 900000 | 接口调用时的时间戳允许的差距单位ms-1 代表不校验差距默认15分钟 |
Server 端配置:
示例:
<!---------------------------- tabs:start ---------------------------->
<!------------- tab:yaml 风格 ------------->
``` yaml
# Sa-Token 配置
sa-token:
# 参数签名配置
sign:
# API 接口调用签名秘钥
secret-key: kQwIOrYvnXmSDkwEiFngrKidMcdrgKor
```
<!------------- tab:properties 风格 ------------->
``` properties
# API 接口调用签名秘钥
sa-token.sign.secret-key=kQwIOrYvnXmSDkwEiFngrKidMcdrgKor
```
<!---------------------------- tabs:end ---------------------------->
### 3、单点登录相关配置
**SSO-Server 端配置:**
| 参数名称 | 类型 | 默认值 | 说明 |
| :-------- | :-------- | :-------- | :-------- |
| mode | String | | 指定当前系统集成 SSO 时使用的模式(约定型配置项,不对代码逻辑产生任何影响) |
| ticketTimeout | long | 300 | ticket 有效期 (单位: 秒) |
| allowUrl | String | * | 所有允许的授权回调地址多个用逗号隔开不在此列表中的URL将禁止下放ticket参考[SSO整合配置域名校验](/sso/sso-check-domain) |
| homeRoute | String | | 主页路由:在 /sso/auth 登录后不指定 redirect 参数的情况下默认跳转的路由 |
| isSlo | Boolean | false | 是否打开单点注销功能 |
| isHttp | Boolean | false | 是否打开模式三(此值为 true 时将使用 http 请求:校验 ticket 值、单点注销、获取 userinfo参考[详解](/use/config?id=配置项详解isHttp) |
| secretkey | String | null | 调用秘钥 用于SSO模式三单点注销的接口通信身份校验 |
| autoRenewTimeout | Bolean | false | 是否在每次下发 ticket 时,自动续期 token 的有效期(根据全局 timeout 值) |
| maxRegClient | int | 32 | 在 Access-Session 上记录 Client 信息的最高数量(-1=无限),超过此值将进行自动清退处理,先进先出 |
| isCheckSign | Boolean | true | 是否校验参数签名方便本地调试用的一个配置项生产环境请务必为true |
配置示例:
Client 端配置:
<!---------------------------- tabs:start ---------------------------->
<!------------- tab:yaml 风格 ------------->
``` yaml
# Sa-Token 配置
sa-token:
# SSO 单点登录服务端配置
sso-server:
# Ticket有效期 (单位: 秒),默认五分钟
ticket-timeout: 300
# 所有允许的授权回调地址
allow-url: "*"
```
<!------------- tab:properties 风格 ------------->
``` properties
# Ticket有效期 (单位: 秒),默认五分钟
sa-token.sso-server.ticket-timeout=300
# 所有允许的授权回调地址
sa-token.sso-server.allow-url="*"
```
<!---------------------------- tabs:end ---------------------------->
**SSO-Client 端配置:**
| 参数名称 | 类型 | 默认值 | 说明 |
| :-------- | :-------- | :-------- | :-------- |
| authUrl | String | /sso/auth | 配置 Server 端单点登录授权地址 |
| isSlo | Boolean | false | 是否打开单点注销功能 |
| isHttp | Boolean | false | 是否打开模式三(此值为 true 时将使用 http 请求:校验 ticket 值、单点注销、获取 userinfo参考[详解](/use/config?id=配置项详解isHttp) |
| checkTicketUrl| String | /sso/checkTicket | 配置 Server 端的 `ticket` 校验地址 |
| userinfoUrl | String | /sso/userinfo | 配置 Server 端查询 `userinfo` 地址 |
| sloUrl | String | /sso/signout | 配置 Server 端单点注销地址 |
| ssoLogoutCall | String | null | 配置当前 Client 端的单点注销回调URL (为空时自动获取) |
| secretkey | String | null | 接口调用秘钥 用于SSO模式三单点注销的接口通信身份校验 |
| serverUrl | String | null | 配置 Server 端主机总地址,拼接在 `authUrl`、`checkTicketUrl`、`userinfoUrl`、`sloUrl` 属性前面,用以简化各种 url 配置,参考:[详解](/sso/sso-questions?id=问:模式三配置一堆-xxx-url-,有办法简化一下吗?) |
| mode | String | | 指定当前系统集成 SSO 时使用的模式(约定型配置项,不对代码逻辑产生任何影响) |
| client | String | "" | 当前 Client 名称标识,用于和 ticket 码的互相锁定 |
| serverUrl | String | null | 配置 Server 端主机总地址,拼接在 `authUrl`、`checkTicketUrl`、`userinfoUrl`、`sloUrl` 属性前面,用以简化各种 url 配置,参考:[详解](/sso/sso-questions?id=问:模式三配置一堆-xxx-url-,有办法简化一下吗?) |
| authUrl | String | /sso/auth | 配置 Server 端单点登录授权地址 |
| checkTicketUrl| String | /sso/checkTicket | 配置 Server 端的 `ticket` 校验地址 |
| getDataUrl | String | /sso/getData | 配置 Server 端的 拉取数据 地址 |
| sloUrl | String | /sso/signout | 配置 Server 端单点注销地址 |
| currSsoLogin | String | null | 配置当前 Client 端的登录地址(为空时自动获取) |
| currSsoLogoutCall | String | null | 配置当前 Client 端的单点注销回调URL (为空时自动获取) |
| isSlo | Boolean | true | 是否打开单点注销功能 |
| isHttp | Boolean | false | 是否打开模式三(此值为 true 时将使用 http 请求:校验 ticket 值、单点注销、拉取数据getData参考[详解](/use/config?id=配置项详解isHttp) |
| isCheckSign | Boolean | true | 是否校验参数签名方便本地调试用的一个配置项生产环境请务必为true |
配置示例:
@ -217,21 +275,25 @@ Client 端配置:
# Sa-Token 配置
sa-token:
# SSO-相关配置
sso:
# SSO-Server端 单点登录授权地址
auth-url: http://sa-sso-server.com:9000/sso/auth
sso-client:
# sso-server 端主机地址
server-url: http://sa-sso-server.com:9000
# 是否打开单点注销功能
is-slo: true
```
<!------------- tab:properties 风格 ------------->
``` properties
# SSO-Server端 单点登录授权地址
sa-token.sso.auth-url=http://sa-sso-server.com:9000/sso/auth
# sso-server 端主机地址
sa-token.sso-client.server-url=http://sa-sso-server.com:9000
# 是否打开单点注销功能
sa-token.sso-client.is-slo=true
```
<!---------------------------- tabs:end ---------------------------->
### OAuth2.0相关配置
### 4、OAuth2.0相关配置
| 参数名称 | 类型 | 默认值 | 说明 |
| :-------- | :-------- | :-------- | :-------- |
| isCode | Boolean | true | 是否打开模式:授权码(`Authorization Code` |
@ -292,7 +354,7 @@ sa-token.oauth2.is-client=true
### 部分配置项详解
### 5、部分配置项详解
对部分配置项做一下详解