优化文档

This commit is contained in:
click33 2023-05-03 06:48:28 +08:00
parent c37fc43351
commit fc4ec6a1f9
2 changed files with 42 additions and 44 deletions

View File

@ -50,15 +50,53 @@ public class SaSsoServerApplication {
如果使用的是模式三,则排查是否有重复校验 ticket 的代码,一个 ticket 码只能使用一次,多次重复使用就会提示这个。
### 模式一或者模式二报错Could not write JSON: No serializer found for class com.pj.sso.SysUser and no properties discovered to create BeanSerializer
### 问:模式一或者模式二报错Could not write JSON: No serializer found for class com.pj.sso.SysUser and no properties discovered to create BeanSerializer
一般是因为在 sso-server 端往 session 上写入了某个实体类(比如 User而在 sso-client 端没有这个实体类,导致反序列化失败。
解决方案:在 sso-client 也新建上这个类,而且包名需要与 sso-server 端的一致(直接从 sso-server 把实体类复制过来就好了)
### 模式三配置一堆 xxx-url ,有办法简化一下吗?
可以使用 `sa-token.sso.server-url` 配置项来简化,参考:[配置项详解serverurl](/use/config?id=配置项详解serverurl)
### 问:模式三配置一堆 xxx-url ,有办法简化一下吗?
可以使用 `sa-token.sso.server-url` 来简化:
配置含义:配置 Server 端主机总地址,拼接在 authUrl、checkTicketUrl、getDataUrl、sloUrl 属性前面,用以简化各种 url 配置。
在开发 SSO 模块时,我们需要在 sso-client 配置认证中心的各种地址,特别是在模式三下,一般代码会变成这样:
``` yaml
sa-token:
sso:
# SSO-Server端 统一认证地址
auth-url: http://sa-sso-server.com:9000/sso/auth
# SSO-Server端 ticket校验地址
check-ticket-url: http://sa-sso-server.com:9000/sso/checkTicket
# 单点注销地址
slo-url: http://sa-sso-server.com:9000/sso/signout
# SSO-Server端 查询数据地址
get-data-url: http://sa-sso-server.com:9000/sso/getData
```
一堆 xxx-url 配置比较繁琐,且含有大量重复字符,现在我们可以将其简化为:
``` yaml
sa-token:
sso:
server-url: http://sa-sso-server.com:9000
```
只要你配置了 `server-url` 地址Sa-Token 就可以自动拼接出其它四个地址:
**例1使用 server-url 简化:**
- 你配置的 server-url 值是:`http://sa-sso-server.com:9000`。
- 框架拼接出的 auth-url 值就是:`http://sa-sso-server.com:9000/sso/auth`,其它三个 url 配置项同理。
**例2使用 server-url + auth-url 简化:**
- 你配置的 server-url 值是:`http://sa-sso-server.com:9000`auth-url 是:`/sso/auth2`。
- 框架拼接出的 auth-url 值就是:`http://sa-sso-server.com:9000/sso/auth2`,其它三个 url 配置项同理。
**例3auth-url 地址以 http 字符开头:**
- 你配置的 server-url 值是:`http://sa-sso-server.com:9000`auth-url 是:`http://my-site.com/sso/auth2`。
- 此时框架只以 auth-url 值为准,得到的 auth-url 值是:`http://my-site.com/sso/auth2`,其它三个 url 配置项同理。
### 问SSO模式二或模式三第一个 client 登录成功之后再访问其它两个 client 不会自动登录,需要点一下登录按钮才会登录上?

View File

@ -201,7 +201,7 @@ Client 端配置:
| sloUrl | String | /sso/signout | 配置 Server 端单点注销地址 |
| ssoLogoutCall | String | null | 配置当前 Client 端的单点注销回调URL (为空时自动获取) |
| secretkey | String | null | 接口调用秘钥 用于SSO模式三单点注销的接口通信身份校验 |
| serverUrl | String | null | 配置 Server 端主机总地址,拼接在 `authUrl`、`checkTicketUrl`、`userinfoUrl`、`sloUrl` 属性前面,用以简化各种 url 配置,[详解](/use/config?id=配置项详解serverUrl) |
| serverUrl | String | null | 配置 Server 端主机总地址,拼接在 `authUrl`、`checkTicketUrl`、`userinfoUrl`、`sloUrl` 属性前面,用以简化各种 url 配置,参考:[详解](/sso/sso-questions?id=问:模式三配置一堆-xxx-url-,有办法简化一下吗?) |
| client | String | "" | 当前 Client 名称标识,用于和 ticket 码的互相锁定 |
@ -343,46 +343,6 @@ sa-token.oauth2.is-client=true
- 此配置项为 true 时代表使用SSO模式三使用 Http 请求校验 ticket 值、使用 Http 请求做到单点注销、使用 Http 请求同步 Userinfo 数据。
#### 配置项详解serverUrl
配置含义:配置 Server 端主机总地址,拼接在 authUrl、checkTicketUrl、getDataUrl、sloUrl 属性前面,用以简化各种 url 配置。
在开发 SSO 模块时,我们需要在 sso-client 配置认证中心的各种地址,特别是在模式三下,一般代码会变成这样:
``` yaml
sa-token:
sso:
# SSO-Server端 统一认证地址
auth-url: http://sa-sso-server.com:9000/sso/auth
# SSO-Server端 ticket校验地址
check-ticket-url: http://sa-sso-server.com:9000/sso/checkTicket
# 单点注销地址
slo-url: http://sa-sso-server.com:9000/sso/signout
# SSO-Server端 查询数据地址
get-data-url: http://sa-sso-server.com:9000/sso/getData
```
一堆 xxx-url 配置比较繁琐,且含有大量重复字符,现在我们可以将其简化为:
``` yaml
sa-token:
sso:
server-url: http://sa-sso-server.com:9000
```
只要你配置了 `server-url` 地址Sa-Token 就可以自动拼接出其它四个地址:
**例1使用 server-url 简化:**
- 你配置的 server-url 值是:`http://sa-sso-server.com:9000`。
- 框架拼接出的 auth-url 值就是:`http://sa-sso-server.com:9000/sso/auth`,其它三个 url 配置项同理。
**例2使用 server-url + auth-url 简化:**
- 你配置的 server-url 值是:`http://sa-sso-server.com:9000`auth-url 是:`/sso/auth2`。
- 框架拼接出的 auth-url 值就是:`http://sa-sso-server.com:9000/sso/auth2`,其它三个 url 配置项同理。
**例3auth-url 地址以 http 字符开头:**
- 你配置的 server-url 值是:`http://sa-sso-server.com:9000`auth-url 是:`http://my-site.com/sso/auth2`。
- 此时框架只以 auth-url 值为准,得到的 auth-url 值是:`http://my-site.com/sso/auth2`,其它三个 url 配置项同理。
---