SaSsoConfig 新增配置 currSsoLogin,用于强制指定当前系统的 sso 登录地址

This commit is contained in:
click33 2024-04-27 18:13:16 +08:00
parent bd313849fc
commit f90bd2cd6a
2 changed files with 35 additions and 4 deletions

View File

@ -117,6 +117,11 @@ public class SaSsoConfig implements Serializable {
*/
public String sloUrl = "/sso/signout";
/**
* 配置当前 Client 端的登录地址为空时自动获取
*/
public String currSsoLogin;
/**
* 配置当前 Client 端的单点注销回调URL 为空时自动获取
*/
@ -311,14 +316,30 @@ public class SaSsoConfig implements Serializable {
}
/**
* @return 配置当前 Client 端的单点注销回调URL 为空时自动获取
* @return 配置当前 Client 端的登录地址为空时自动获取
*/
public String getCurrSsoLogin() {
return currSsoLogin;
}
/**
* @param currSsoLogin 配置当前 Client 端的登录地址为空时自动获取
* @return 对象自身
*/
public SaSsoConfig setCurrSsoLogin(String currSsoLogin) {
this.currSsoLogin = currSsoLogin;
return this;
}
/**
* @return 配置当前 Client 端的单点注销回调URL 为空时自动获取
*/
public String getSsoLogoutCall() {
return ssoLogoutCall;
}
/**
* @param ssoLogoutCall 配置当前 Client 端的单点注销回调URL 为空时自动获取
* @param ssoLogoutCall 配置当前 Client 端的单点注销回调URL 为空时自动获取
* @return 对象自身
*/
public SaSsoConfig setSsoLogoutCall(String ssoLogoutCall) {
@ -374,7 +395,8 @@ public class SaSsoConfig implements Serializable {
+ ", checkTicketUrl=" + checkTicketUrl
+ ", getDataUrl=" + getDataUrl
+ ", userinfoUrl=" + userinfoUrl
+ ", sloUrl=" + sloUrl
+ ", sloUrl=" + sloUrl
+ ", currSsoLogin=" + currSsoLogin
+ ", ssoLogoutCall=" + ssoLogoutCall
+ ", serverUrl=" + serverUrl
+ ", isCheckSign=" + isCheckSign

View File

@ -290,7 +290,16 @@ public class SaSsoProcessor {
* 情况2ticket有值说明此请求从SSO认证中心重定向而来需要根据ticket进行登录
*/
if(ticket == null) {
String serverAuthUrl = ssoTemplate.buildServerAuthUrl(SaHolder.getRequest().getUrl(), back);
// 获取当前项目的 sso 登录地址
// 全局配置了就是用全局的否则使用当前请求的地址
String currSsoLoginUrl;
if(SaFoxUtil.isNotEmpty(cfg.getCurrSsoLogin())) {
currSsoLoginUrl = cfg.getCurrSsoLogin();
} else {
currSsoLoginUrl = SaHolder.getRequest().getUrl();
}
// 构建url
String serverAuthUrl = ssoTemplate.buildServerAuthUrl(currSsoLoginUrl, back);
return res.redirect(serverAuthUrl);
} else {
// ------- 1校验ticket获取 loginId