新增网关和服务灰度能力:组织灰度支持前端交互、灰度多实例多版本优化

This commit is contained in:
gaoqr
2025-04-07 16:45:53 +08:00
parent 99d500e355
commit 4ba7d2acc6
12 changed files with 51 additions and 21 deletions
@@ -64,4 +64,9 @@ public class LoginUser {
* 灰度版本号
*/
private String grayVersion;
/**
* 灰度默认版本号
*/
private String grayDefaultVersion;
}
@@ -150,7 +150,8 @@ public class TokenAuthenticationFilter implements GlobalFilter, Ordered {
.setOrganId(tokenInfo.getOrganId()).setScopes(tokenInfo.getScopes())
.setLarge(tokenInfo.getLarge()).setDbNo(tokenInfo.getDbNo()).setTableNo(tokenInfo.getTableNo())
.setDataCode(tokenInfo.getDataCode()).setIsSupAdmin(tokenInfo.getIsSupAdmin())
.setNickname(tokenInfo.getNickname()).setDeptId(tokenInfo.getDeptId()).setGrayVersion(tokenInfo.getGrayVersion());
.setNickname(tokenInfo.getNickname()).setDeptId(tokenInfo.getDeptId())
.setGrayVersion(tokenInfo.getGrayVersion()).setGrayDefaultVersion(tokenInfo.getGrayDefaultVersion());
}
@Override
@@ -96,16 +96,6 @@ public class SecurityFrameworkUtils {
return MapUtil.getLong(exchange.getAttributes(), LOGIN_USER_ID_ATTR);
}
/**
* 获得登录用户的类型
*
* @param exchange 请求
* @return 用户类型
*/
public static Integer getLoginUserType(ServerWebExchange exchange) {
return MapUtil.getInt(exchange.getAttributes(), LOGIN_USER_TYPE_ATTR);
}
/**
* 将 user 并设置到 login-user 的请求头,使用 json 存储值
*
@@ -126,13 +116,12 @@ public class SecurityFrameworkUtils {
builder.header(ORGAN_ID, user.getOrganId().toString());
// 灰度版本号设置到headers,继续往下filter选择实例
String grayVersion = user.getGrayVersion();
String grayDefaultVersion = user.getGrayDefaultVersion();
if (StringUtils.hasText(grayVersion)) {
builder.header(LOGIN_USER_GRAY_VERSION, grayVersion);
} else if (StringUtils.hasText(grayDefaultVersion)) {
builder.header(LOGIN_USER_GRAY_VERSION, grayDefaultVersion);
}
}
public static void setOrganHeader(ServerHttpRequest.Builder builder, LoginUser user) {
builder.header(ORGAN_ID, user.getOrganId().toString());
}
}