diff --git a/sa-token-doc/start/download.md b/sa-token-doc/start/download.md index b41e8480..148f5a37 100644 --- a/sa-token-doc/start/download.md +++ b/sa-token-doc/start/download.md @@ -259,7 +259,8 @@ Maven依赖一直无法加载成功?[参考解决方案](https://sa-token.cc/d ├── sa-token-demo-sso2-client // [示例] Sa-Token 集成 SSO单点登录-模式二 应用端 (跨域、同Redis) ├── sa-token-demo-sso3-client // [示例] Sa-Token 集成 SSO单点登录-模式三 应用端 (跨域、跨Redis) ├── sa-token-demo-sso3-client-nosdk // [示例] Sa-Token 集成 SSO单点登录-模式三 应用端 (不使用sdk,纯手动对接) - ├── sa-token-demo-sso3-client-test2 // [示例] Sa-Token 集成 SSO单点登录-模式三 应用端 (待 client 标识) + ├── sa-token-demo-sso3-client-resdk // [示例] Sa-Token 集成 SSO单点登录-模式三 应用端 (ReSdk 模式,重写部分方法对接任意技术栈) + ├── sa-token-demo-sso3-client-anon // [示例] Sa-Token 集成 SSO单点登录-模式三 应用端 (匿名应用接入示例) ├── sa-token-demo-sso-server-h5 // [示例] Sa-Token 集成 SSO单点登录-Server认证中心 (前后端分离) ├── sa-token-demo-sso-client-h5 // [示例] Sa-Token 集成 SSO单点登录-client应用端 (前后端分离-原生h5 版本) ├── sa-token-demo-sso-server-vue2 // [示例] Sa-Token 集成 SSO单点登录-client应用端 (前后端分离-Vue2 版本) diff --git a/sa-token-doc/use/config.md b/sa-token-doc/use/config.md index 8e099a3a..fa565ea2 100644 --- a/sa-token-doc/use/config.md +++ b/sa-token-doc/use/config.md @@ -283,59 +283,66 @@ sa-token.pi-key.is-record-index=true ### 3、单点登录相关配置 -**SSO-Server 端配置:** +#### 3.1、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 | true | 是否打开单点注销功能 | -| isHttp | Boolean | false | 是否打开模式三(此值为 true 时将使用 http 请求:校验 ticket 值、单点注销、获取 userinfo),参考:[详解](/use/config?id=配置项详解:isHttp) | +| 参数名称 | 类型 | 默认值 | 说明 | +| :-------- | :-------- | :-------- | :-------- | +| mode | String | | 指定当前系统集成 SSO 时使用的模式(约定型配置项,不对代码逻辑产生任何影响) | +| ticketTimeout | long | 300 | ticket 有效期 (单位: 秒) | +| homeRoute | String | | 主页路由:在 /sso/auth 登录页不指定 redirect 参数时,默认跳转的地址 | +| isSlo | Boolean | true | 是否打开单点注销功能 | | autoRenewTimeout | Bolean | false | 是否在每次下发 ticket 时,自动续期 token 的有效期(根据全局 timeout 值) | -| maxRegClient | int | 32 | 在 Access-Session 上记录 Client 信息的最高数量(-1=无限),超过此值将进行自动清退处理,先进先出 | -| isCheckSign | Boolean | true | 是否校验参数签名(方便本地调试用的一个配置项,生产环境请务必为true) | +| maxRegClient | int | 32 | 在 Access-Session 上记录 Client 信息的最高数量(-1=无限),超过此值将进行自动清退处理,先进先出 | +| isCheckSign | Boolean | true | 是否校验参数签名(方便本地调试用的一个配置项,生产环境请务必为true) | +| clients | Map | new LinkedHashMap<>(); | 以 Map 格式配置 Client 列表 | +| allowAnonClient | Boolean | false | 是否允许匿名 Client 接入。参考: [匿名 client 接入](/sso/anon-client) | +| allowUrl | String | | 所有允许的授权回调地址,多个用逗号隔开 (不在此列表中的URL将禁止下放ticket) (匿名 client 使用),参考:[SSO整合:配置域名校验](/sso/sso-check-domain) | +| secretKey | String | | API 调用签名秘钥 (全局默认 + 匿名 client 使用) | 配置示例: -``` yaml +``` yml # Sa-Token 配置 -sa-token: - # SSO 单点登录服务端配置 +sa-token: + # SSO-Server 配置 sso-server: # Ticket有效期 (单位: 秒),默认五分钟 ticket-timeout: 300 - # 所有允许的授权回调地址 - allow-url: "*" + # 主页路由:在 /sso/auth 登录页不指定 redirect 参数时,默认跳转的地址 + home-route: /home ``` ``` properties +# SSO-Server 配置 # Ticket有效期 (单位: 秒),默认五分钟 sa-token.sso-server.ticket-timeout=300 -# 所有允许的授权回调地址 -sa-token.sso-server.allow-url="*" +# 主页路由:在 /sso/auth 登录页不指定 redirect 参数时,默认跳转的地址 +sa-token.sso-server.home-route=/home ``` + -**SSO-Client 端配置:** -| 参数名称 | 类型 | 默认值 | 说明 | -| :-------- | :-------- | :-------- | :-------- | -| 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) | +#### 3.2、SSO-Client 端配置 + +| 参数名称 | 类型 | 默认值 | 说明 | +| :-------- | :-------- | :-------- | :-------- | +| 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 端单点登录授权地址 | +| signoutUrl | String | /sso/signout | 配置 Server 端单点注销地址 | +| pushUrl | String | /sso/pushS | 配置 Server 端的推送消息地址 | +| getDataUrl | String | /sso/getData | 配置 Server 端的 拉取数据 地址 | +| currSsoLogin | String | null | 配置当前 Client 端的登录地址(为空时自动获取) | +| currSsoLogoutCall | String | null | 配置当前 Client 端的单点注销回调URL (为空时自动获取) | +| isHttp | Boolean | false | 是否打开模式三(此值为 true 时将使用 http 请求:校验 ticket 值、单点注销、拉取数据getData),参考:[详解](/use/config?id=配置项详解:isHttp) | +| isSlo | Boolean | true | 是否打开单点注销功能 | +| regLogoutCall | Boolean | false | 是否注册单点登录注销回调 (为 true 时,登录时附带单点登录回调地址,并且开放 /sso/logoutCall 地址) | +| secretKey | String | "" | API 调用签名秘钥 | +| isCheckSign | Boolean | true | 是否校验参数签名(方便本地调试用的一个配置项,生产环境请务必为true) | 配置示例: @@ -362,6 +369,59 @@ sa-token.sso-client.is-slo=true +#### 3.3、SaSsoClientModel 配置 + +| 参数名称 | 类型 | 默认值 | 说明 | +| :-------- | :-------- | :-------- | :-------- | +| client | String | "" | 当前 Client 名称标识,用于和 ticket 码的互相锁定 | +| allowUrl | String | | 所有允许的授权回调地址,多个用逗号隔开 (不在此列表中的URL将禁止下放ticket) (匿名 client 使用),参考:[SSO整合:配置域名校验](/sso/sso-check-domain) | +| isPush | Boolean | false | 是否接收推送消息 | +| isSlo | Boolean | true | 是否打开单点注销功能 | +| secretKey | String | "" | API 调用签名秘钥 | +| serverUrl | String | null | 配置 Server 端主机总地址,拼接在 `authUrl`、`checkTicketUrl`、`userinfoUrl`、`sloUrl` 属性前面,用以简化各种 url 配置,参考:[详解](/sso/sso-questions?id=问:模式三配置一堆-xxx-url-,有办法简化一下吗?) | +| pushUrl | String | /sso/pushC | 配置此 Client 端的推送消息地址 | + +配置示例: + + + +``` yml +# Sa-Token 配置 +sa-token: + # SSO-Server 配置 + sso-server: + # 应用列表:配置接入的应用信息 + clients: + # 应用 sso-client1 + sso-client1: + client: sso-client1 + allow-url: "*" + secret-key: SSO-C1-kQwIOrYvnXmSDkwEiFngrKidMcdrgKor + # 应用 sso-client2 + sso-client2: + client: sso-client2 + allow-url: "*" + secret-key: SSO-C2-kQwIOrYvnXmSDkwEiFngrKidMcdrgKor +``` + +``` properties +# 应用列表:配置接入的应用信息 +# 应用 sso-client1 +sa-token.sso-server.clients.sso-client1.client=sso-client1 +sa-token.sso-server.clients.sso-client1.allow-url=* +sa-token.sso-server.clients.sso-client1.secret-key=SSO-C1-kQwIOrYvnXmSDkwEiFngrKidMcdrgKor + +# 应用 sso-client2 +sa-token.sso-server.clients.sso-client2.client=sso-client2 +sa-token.sso-server.clients.sso-client2.allow-url=* +sa-token.sso-server.clients.sso-client2.secret-key=SSO-C2-kQwIOrYvnXmSDkwEiFngrKidMcdrgKor +``` + + + + + + ### 4、OAuth2.0相关配置 | 参数名称 | 类型 | 默认值 | 说明 | diff --git a/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/config/SaSsoServerConfig.java b/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/config/SaSsoServerConfig.java index 8486a16b..80e2ce8d 100644 --- a/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/config/SaSsoServerConfig.java +++ b/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/config/SaSsoServerConfig.java @@ -87,7 +87,7 @@ public class SaSsoServerConfig implements Serializable { /** * 所有允许的授权回调地址,多个用逗号隔开 (不在此列表中的URL将禁止下放ticket) (匿名 client 使用) */ - public String allowUrl = "*"; + public String allowUrl = ""; /** * API 调用签名秘钥 (全局默认 + 匿名 client 使用)