mirror of
https://gitee.com/dromara/sa-token.git
synced 2026-02-27 16:50:24 +08:00
refactor: 调整 SSO 相关示例
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -41,7 +41,7 @@ public class SaSsoMessage extends LinkedHashMap<String, Object> implements SaSet
|
||||
/**
|
||||
* KEY:TYPE
|
||||
*/
|
||||
public static final String MSG_TYPE = "msg_type";
|
||||
public static final String MSG_TYPE = "msgType";
|
||||
|
||||
public SaSsoMessage() {
|
||||
|
||||
|
||||
@@ -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 字段作为异常抛出
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user