refactor(sso): 封住化获取 client 标识值

This commit is contained in:
click33
2025-05-02 04:54:38 +08:00
parent 5aac119beb
commit 62e5c9b19d
4 changed files with 21 additions and 26 deletions

View File

@@ -179,7 +179,7 @@ public class SaSsoClientProcessor {
// 1、校验签名
Map<String, String> paramMap = SaHolder.getRequest().getParamMap();
if(ssoClientConfig.getIsCheckSign()) {
ssoClientTemplate.getSignTemplate(ssoClientConfig.getClient()).checkParamMap(paramMap);
ssoClientTemplate.getSignTemplate().checkParamMap(paramMap);
} else {
SaSsoManager.printNoCheckSignWarningByRuntime();
}
@@ -265,7 +265,7 @@ public class SaSsoClientProcessor {
// 校验参数签名
if(ssoConfig.getIsCheckSign()) {
ssoClientTemplate.getSignTemplate(ssoConfig.getClient()).checkRequest(req);
ssoClientTemplate.getSignTemplate().checkRequest(req);
} else {
SaSsoManager.printNoCheckSignWarningByRuntime();
}
@@ -341,7 +341,7 @@ public class SaSsoClientProcessor {
// 解决方案为:在当前 sso-client 端也按照 sso-server 端的格式重写 SaSsoClientProcessor 里的方法
StpLogic stpLogic = ssoClientTemplate.getStpLogic();
TicketModel ticketModel = SaSsoServerProcessor.instance.ssoServerTemplate.checkTicketParamAndDelete(ticket, cfg.getClient());
TicketModel ticketModel = SaSsoServerProcessor.instance.ssoServerTemplate.checkTicketParamAndDelete(ticket, ssoClientTemplate.getClient());
SaCheckTicketResult ctr = new SaCheckTicketResult();
ctr.loginId = ticketModel.getLoginId();

View File

@@ -83,7 +83,7 @@ public class SaSsoClientTemplate extends SaSsoTemplate {
String serverUrl = ssoConfig.splicingAuthUrl();
// 拼接客户端标识
String client = ssoConfig.getClient();
String client = getClient();
if(SaFoxUtil.isNotEmpty(client)) {
serverUrl = SaFoxUtil.joinParam(serverUrl, paramName.client, client);
}
@@ -135,8 +135,8 @@ public class SaSsoClientTemplate extends SaSsoTemplate {
}
// 构建参数字符串
paramMap.put(paramName.client, ssoConfig.getClient());
String signParamsStr = getSignTemplate(ssoConfig.getClient()).addSignParamsAndJoin(paramMap);
paramMap.put(paramName.client, getClient());
String signParamsStr = getSignTemplate().addSignParamsAndJoin(paramMap);
// 拼接
return SaFoxUtil.joinParam(url, signParamsStr);
@@ -153,7 +153,7 @@ public class SaSsoClientTemplate extends SaSsoTemplate {
SaSsoClientConfig ssoConfig = getClientConfig();
SaSsoMessage message = new SaSsoMessage();
message.setType(SaSsoConsts.MESSAGE_CHECK_TICKET);
message.set(paramName.client, ssoConfig.getClient());
message.set(paramName.client, getClient());
message.set(paramName.ticket, ticket);
message.set(paramName.ssoLogoutCall, ssoLogoutCallUrl);
return message;
@@ -170,7 +170,7 @@ public class SaSsoClientTemplate extends SaSsoTemplate {
SaSsoClientConfig ssoConfig = getClientConfig();
SaSsoMessage message = new SaSsoMessage();
message.setType(SaSsoConsts.MESSAGE_SIGNOUT);
message.set(paramName.client, ssoConfig.getClient());
message.set(paramName.client, getClient());
message.set(paramName.loginId, loginId);
message.set(paramName.deviceId, logoutParameter.getDeviceId());
return message;
@@ -193,9 +193,9 @@ public class SaSsoClientTemplate extends SaSsoTemplate {
SaSsoException.notTrue(! SaFoxUtil.isUrl(pushUrl), "无效 push-url 地址:" + pushUrl, SaSsoErrorCode.CODE_30023);
// 组织参数
message.set(paramName.client, ssoConfig.getClient());
message.set(paramName.client, getClient());
message.checkType();
String paramsStr = getSignTemplate(ssoConfig.getClient()).addSignParamsAndJoin(message);
String paramsStr = getSignTemplate().addSignParamsAndJoin(message);
// 发起请求
String finalUrl = SaFoxUtil.joinParam(pushUrl, paramsStr);
@@ -226,12 +226,19 @@ public class SaSsoClientTemplate extends SaSsoTemplate {
}
/**
* 获取底层使用的 API 签名对象
* @param client 指定客户端标识,填 null 代表获取默认的
* 获取当前项目 client 标识
* @return /
*/
@Override
public SaSignTemplate getSignTemplate(String client) {
public String getClient() {
return getClientConfig().getClient();
}
/**
* 获取底层使用的 API 签名对象
*
* @return /
*/
public SaSignTemplate getSignTemplate() {
SaSignConfig signConfig = SaManager.getSaSignTemplate().getSignConfigOrGlobal().copy();
// 使用 secretKey 的优先级SSO 模块全局配置 > sign 模块默认配置

View File

@@ -737,7 +737,6 @@ public class SaSsoServerTemplate extends SaSsoTemplate {
* @param client 指定客户端标识,填 null 代表获取默认的
* @return /
*/
@Override
public SaSignTemplate getSignTemplate(String client) {
SaSignConfig signConfig = SaManager.getSaSignTemplate().getSignConfigOrGlobal().copy();
SaSsoClientModel clientModel = getClientNotNull(client);

View File

@@ -16,7 +16,6 @@
package cn.dev33.satoken.sso.template;
import cn.dev33.satoken.SaManager;
import cn.dev33.satoken.sign.SaSignTemplate;
import cn.dev33.satoken.sso.message.SaSsoMessage;
import cn.dev33.satoken.sso.message.SaSsoMessageHolder;
import cn.dev33.satoken.sso.name.ApiName;
@@ -73,16 +72,6 @@ public class SaSsoTemplate {
return StpUtil.stpLogic;
}
/**
* 获取底层使用的 API 签名对象
* @param client 指定客户端标识,填 null 代表获取默认的
* @return /
*/
public SaSignTemplate getSignTemplate(String client) {
// 框架默认只返回全局 SaSignTemplateclient 参数留作开发者扩展
return SaManager.getSaSignTemplate();
}
// ----------- 消息处理
public SaSsoMessageHolder messageHolder = new SaSsoMessageHolder();