mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-08-20 09:26:31 +08:00
新增 sa-token.sso.mode 配置项,用于约定此系统使用的 SSO 模式。
This commit is contained in:
parent
d4ff8df5b4
commit
94b1ab29a6
@ -99,6 +99,40 @@ sa-token:
|
||||
- 此时框架只以 auth-url 值为准,得到的 auth-url 值是:`http://my-site.com/sso/auth2`,其它三个 url 配置项同理。
|
||||
|
||||
|
||||
### 问:我接手了一个项目,里面集成了 Sa-Token SSO ,请问怎么快速分辨它用的模式几?
|
||||
|
||||
**方法一:看代码注释。**
|
||||
|
||||
如果开发这个项目的人没有写清楚注释那就 gg 了。
|
||||
|
||||
**方法二,根据配置项来分析,例如:**
|
||||
|
||||
- 先看配置项 `sa-token.cookie.domain`,如果此配置项有值,一般是在使用模式一开发,否则就是模式二或者模式三。
|
||||
- 再看配置项 `sa-token.sso.is-http` ,如果有值且为 true,一般是在使用模式三,否则就是模式二。
|
||||
|
||||
**方法三,根据配置项 `sa-token.sso.mode` 的提示来判断**
|
||||
|
||||
`sa-token.sso.mode` 是框架预留的约定型配置项,此配置项不对代码逻辑产生任何影响,只为系统做一个标记,标注此系统用到了SSO的哪个模式。
|
||||
|
||||
例如你可以将其配置为 `sa-token.sso.mode=client-2`,代表当前系统为 sso-client 端,使用 SSO 模式二来对接。
|
||||
|
||||
需要注意,这个配置项不是必须的,你不写也不会对代码造成任何影响,只有在你需要为系统做一个明确的标记时才需要去配置它,方便后人阅读代码时快速分析使用的模式。
|
||||
|
||||
例如我们可以使用以下约定:
|
||||
|
||||
- `sa-token.sso.mode=client-2`:代表当前系统为 sso-client 端,使用 SSO 模式二来对接。
|
||||
- `sa-token.sso.mode=client-2,h5`:代表当前系统为 sso-client 端,使用 SSO 模式二来对接,并且是前后端分离模式。
|
||||
- `sa-token.sso.mode=server-123`:代表当前系统为 sso-server 端,同时开放了 SSO 模式一、模式二、模式三。
|
||||
- `sa-token.sso.mode=server-2,client-2`:代表当前系统既是 sso-server 端,又是 sso-clent 端,使用模式二来对接。
|
||||
- 等等等等...
|
||||
|
||||
此配置项可以是任意字符串,你也可以自己整理一套合适的表达规则。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### 问:SSO模式二或模式三,第一个 client 登录成功之后再访问其它两个 client 不会自动登录,需要点一下登录按钮才会登录上?
|
||||
答:这是正常现象,系统 1 登录成功之后,系统 2 与系统 3 需要点击登录按钮,才会登录成功。
|
||||
|
||||
|
||||
@ -22,7 +22,12 @@ public class SaSsoConfig implements Serializable {
|
||||
private static final long serialVersionUID = -6541180061782004705L;
|
||||
|
||||
|
||||
// ----------------- Server端相关配置
|
||||
// ----------------- Server端相关配置
|
||||
|
||||
/**
|
||||
* 指定当前系统集成 SSO 时使用的模式(约定型配置项,不对代码逻辑产生任何影响)
|
||||
*/
|
||||
public String mode = "";
|
||||
|
||||
/**
|
||||
* Ticket有效期 (单位: 秒)
|
||||
@ -47,6 +52,11 @@ public class SaSsoConfig implements Serializable {
|
||||
|
||||
// ----------------- Client端相关配置
|
||||
|
||||
// /**
|
||||
// * 指定当前系统集成 SSO 时使用的模式(约定型配置项,不对代码逻辑产生任何影响)
|
||||
// */
|
||||
// public String mode = ""; // 同Server端,不再重复声明
|
||||
|
||||
/**
|
||||
* 当前 Client 名称标识,用于和 ticket 码的互相锁定
|
||||
*/
|
||||
@ -103,6 +113,24 @@ public class SaSsoConfig implements Serializable {
|
||||
public String serverUrl;
|
||||
|
||||
|
||||
/**
|
||||
* 获取 指定当前系统集成 SSO 时使用的模式(约定型配置项,不对代码逻辑产生任何影响)
|
||||
*
|
||||
* @return /
|
||||
*/
|
||||
public String getMode() {
|
||||
return this.mode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置 指定当前系统集成 SSO 时使用的模式(约定型配置项,不对代码逻辑产生任何影响)
|
||||
*
|
||||
* @param mode /
|
||||
*/
|
||||
public void setMode(String mode) {
|
||||
this.mode = mode;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Ticket有效期 (单位: 秒)
|
||||
*/
|
||||
@ -297,7 +325,8 @@ public class SaSsoConfig implements Serializable {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SaSsoConfig ["
|
||||
+ "ticketTimeout=" + ticketTimeout
|
||||
+ "mode=" + mode
|
||||
+ ", ticketTimeout=" + ticketTimeout
|
||||
+ ", allowUrl=" + allowUrl
|
||||
+ ", isSlo=" + isSlo
|
||||
+ ", isHttp=" + isHttp
|
||||
@ -457,5 +486,4 @@ public class SaSsoConfig implements Serializable {
|
||||
return sendHttp;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user