refactor: 调整 SSO 相关示例

This commit is contained in:
click33
2025-05-08 20:50:30 +08:00
parent 2ecd52b3be
commit 88f99c49fb
25 changed files with 117 additions and 57 deletions

View File

@@ -48,7 +48,7 @@ public class SaSsoServerConfig implements Serializable {
public long ticketTimeout = 60 * 5;
/**
* 主页路由:在 /sso/auth 登录不指定 redirect 参数的情况下默认跳转的路由
* 主页路由:在 /sso/auth 登录不指定 redirect 参数时,默认跳转的地址
*/
public String homeRoute;
@@ -176,14 +176,14 @@ public class SaSsoServerConfig implements Serializable {
}
/**
* @return 主页路由:在 /sso/auth 登录不指定 redirect 参数的情况下默认跳转的路由
* @return 主页路由:在 /sso/auth 登录不指定 redirect 参数时,默认跳转的地址
*/
public String getHomeRoute() {
return homeRoute;
}
/**
* @param homeRoute 主页路由:在 /sso/auth 登录不指定 redirect 参数的情况下默认跳转的路由
* @param homeRoute 主页路由:在 /sso/auth 登录不指定 redirect 参数时,默认跳转的地址
* @return 对象自身
*/
public SaSsoServerConfig setHomeRoute(String homeRoute) {

View File

@@ -41,7 +41,7 @@ public class SaSsoMessage extends LinkedHashMap<String, Object> implements SaSet
/**
* KEYTYPE
*/
public static final String MSG_TYPE = "msg_type";
public static final String MSG_TYPE = "msgType";
public SaSsoMessage() {

View File

@@ -275,7 +275,7 @@ public class SaSsoClientProcessor {
logoutParameter.setDeviceId(stpLogic.getLoginDeviceId());
}
Object centerId = ssoClientTemplate.strategy.convertLoginIdToCenterId.run(stpLogic.getLoginId());
SaSsoMessage message = ssoClientTemplate.buildSloMessage(centerId, logoutParameter);
SaSsoMessage message = ssoClientTemplate.buildSignoutMessage(centerId, logoutParameter);
SaResult result = ssoClientTemplate.pushMessageAsSaResult(message);
// 如果 sso-server 响应的状态码非200代表业务失败将回应的 msg 字段作为异常抛出

View File

@@ -85,7 +85,7 @@ public class SaSsoServerProcessor {
// sso-server接收推送消息
if(req.isPath(apiName.ssoPushS)) {
return ssoPush();
return ssoPushS();
}
// 默认返回
@@ -199,7 +199,7 @@ public class SaSsoServerProcessor {
*
* @return 处理结果
*/
public Object ssoPush() {
public Object ssoPushS() {
ParamName paramName = ssoServerTemplate.paramName;
SaSsoServerConfig ssoServerConfig = ssoServerTemplate.getServerConfig();

View File

@@ -212,7 +212,7 @@ public class SaSsoClientTemplate extends SaSsoTemplate {
* @param logoutParameter 单点注销
* @return 单点注销URL
*/
public SaSsoMessage buildSloMessage(Object loginId, SaLogoutParameter logoutParameter) {
public SaSsoMessage buildSignoutMessage(Object loginId, SaLogoutParameter logoutParameter) {
SaSsoMessage message = new SaSsoMessage();
message.setType(SaSsoConsts.MESSAGE_SIGNOUT);
message.set(paramName.client, getClient());

View File

@@ -28,7 +28,7 @@ import java.util.Map;
* @author click33
* @since 1.38.0
*/
public class SaSsoClientUtil extends SaSsoTemplate {
public class SaSsoClientUtil {
private SaSsoClientUtil() {
}
@@ -120,8 +120,8 @@ public class SaSsoClientUtil extends SaSsoTemplate {
* @param logoutParameter 单点注销
* @return 单点注销URL
*/
public static SaSsoMessage buildSloMessage(Object loginId, SaLogoutParameter logoutParameter) {
return SaSsoClientProcessor.instance.ssoClientTemplate.buildSloMessage(loginId, logoutParameter);
public static SaSsoMessage buildSignoutMessage(Object loginId, SaLogoutParameter logoutParameter) {
return SaSsoClientProcessor.instance.ssoClientTemplate.buildSignoutMessage(loginId, logoutParameter);
}
}

View File

@@ -292,7 +292,7 @@ public class SaSsoServerTemplate extends SaSsoTemplate {
*/
public SaSsoClientModel getClientNotNull(String client) {
if(SaFoxUtil.isEmpty(client)) {
if(getServerConfig().getAllowAnonClient()) {
if(getConfigOfAllowAnonClient()) {
return getAnonClient();
} else {
throw new SaSsoException("client 标识不可为空");
@@ -307,7 +307,16 @@ public class SaSsoServerTemplate extends SaSsoTemplate {
}
/**
* 获取匿名 client 信息
* 获取配置项:是否允许匿名 client 接入
*
* @return /
*/
public boolean getConfigOfAllowAnonClient() {
return getServerConfig().getAllowAnonClient();
}
/**
* 获取匿名 client 配置信息
*
* @return /
*/
@@ -697,8 +706,22 @@ public class SaSsoServerTemplate extends SaSsoTemplate {
* @param message /
*/
public void pushToAllClient(SaSsoMessage message) {
pushToAllClient(message, null);
}
/**
* 向所有 Client 推送消息,并忽略掉某个 client
*
* @param ignoreClient 要被忽略掉的 client填 null 代表不忽略
* @param message /
*/
public void pushToAllClient(SaSsoMessage message, String ignoreClient) {
// TODO 待验证
List<SaSsoClientModel> needPushClients = getNeedPushClients();
for (SaSsoClientModel client : needPushClients) {
if(ignoreClient != null && ignoreClient.equals(client.getClient())) {
continue;
}
strategy.asyncRun.run(() -> pushMessage(client, message));
}
}

View File

@@ -30,7 +30,7 @@ import java.util.List;
* @author click33
* @since 1.43.0
*/
public class SaSsoServerUtil extends SaSsoTemplate {
public class SaSsoServerUtil {
private SaSsoServerUtil() {
}
@@ -297,4 +297,14 @@ public class SaSsoServerUtil extends SaSsoTemplate {
SaSsoServerProcessor.instance.ssoServerTemplate.pushToAllClient(message);
}
/**
* 向所有 Client 推送消息,并忽略掉某个 client
*
* @param ignoreClient 要被忽略掉的 client填 null 代表不忽略
* @param message /
*/
public static void pushToAllClient(SaSsoMessage message, String ignoreClient) {
SaSsoServerProcessor.instance.ssoServerTemplate.pushToAllClient(message, ignoreClient);
}
}