1. 统一网关未命中缓存时,进行兜底查询
2. loginUser 新增 mobile username 作为 userInfo 扩展内容
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
package com.zt.plat.framework.security.core;
|
package com.zt.plat.framework.security.core;
|
||||||
|
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import com.zt.plat.framework.common.enums.UserTypeEnum;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
import com.zt.plat.framework.common.enums.UserTypeEnum;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -20,6 +20,8 @@ public class LoginUser {
|
|||||||
|
|
||||||
public static final String INFO_KEY_NICKNAME = "nickname";
|
public static final String INFO_KEY_NICKNAME = "nickname";
|
||||||
public static final String INFO_KEY_TENANT_ID = "tenantId";
|
public static final String INFO_KEY_TENANT_ID = "tenantId";
|
||||||
|
public static final String INFO_KEY_USERNAME = "username";
|
||||||
|
public static final String INFO_KEY_PHONE = "phone";
|
||||||
// 用户关联的公司 Id
|
// 用户关联的公司 Id
|
||||||
public static final String INFO_KEY_COMPANY_IDS = "companyIds";
|
public static final String INFO_KEY_COMPANY_IDS = "companyIds";
|
||||||
// 用户关联的部门 Id
|
// 用户关联的部门 Id
|
||||||
|
|||||||
@@ -24,8 +24,7 @@ public class ApiFlowDispatcher {
|
|||||||
private final MessagingTemplate messagingTemplate;
|
private final MessagingTemplate messagingTemplate;
|
||||||
|
|
||||||
public ApiInvocationContext dispatch(String apiCode, String version, ApiInvocationContext context) {
|
public ApiInvocationContext dispatch(String apiCode, String version, ApiInvocationContext context) {
|
||||||
MessageChannel channel = integrationFlowManager.locateInputChannel(apiCode, version)
|
MessageChannel channel = requireInputChannel(apiCode, version);
|
||||||
.orElseThrow(() -> ServiceExceptionUtil.exception(API_FLOW_NOT_FOUND, apiCode, version));
|
|
||||||
Message<ApiInvocationContext> message = MessageBuilder.withPayload(context)
|
Message<ApiInvocationContext> message = MessageBuilder.withPayload(context)
|
||||||
.setHeader("apiCode", apiCode)
|
.setHeader("apiCode", apiCode)
|
||||||
.setHeader("version", version)
|
.setHeader("version", version)
|
||||||
@@ -36,4 +35,14 @@ public class ApiFlowDispatcher {
|
|||||||
}
|
}
|
||||||
return (ApiInvocationContext) reply.getPayload();
|
return (ApiInvocationContext) reply.getPayload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private MessageChannel requireInputChannel(String apiCode, String version) {
|
||||||
|
// 未命中时,进行一次兜底补偿查询
|
||||||
|
return integrationFlowManager.locateInputChannel(apiCode, version)
|
||||||
|
.or(() -> {
|
||||||
|
integrationFlowManager.refresh(apiCode, version);
|
||||||
|
return integrationFlowManager.locateInputChannel(apiCode, version);
|
||||||
|
})
|
||||||
|
.orElseThrow(() -> ServiceExceptionUtil.exception(API_FLOW_NOT_FOUND, apiCode, version));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -201,6 +201,8 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
|
|||||||
AdminUserDO user = adminUserService.getUser(userId);
|
AdminUserDO user = adminUserService.getUser(userId);
|
||||||
return MapUtil.builder(LoginUser.INFO_KEY_NICKNAME, user.getNickname())
|
return MapUtil.builder(LoginUser.INFO_KEY_NICKNAME, user.getNickname())
|
||||||
.put(LoginUser.INFO_KEY_TENANT_ID, user.getTenantId().toString())
|
.put(LoginUser.INFO_KEY_TENANT_ID, user.getTenantId().toString())
|
||||||
|
.put(LoginUser.INFO_KEY_USERNAME, user.getUsername())
|
||||||
|
.put(LoginUser.INFO_KEY_PHONE, user.getMobile())
|
||||||
.put(LoginUser.INFO_KEY_COMPANY_IDS, CollUtil.isEmpty(user.getCompanyIds()) ? "[]" : JsonUtils.toJsonString(user.getCompanyIds()))
|
.put(LoginUser.INFO_KEY_COMPANY_IDS, CollUtil.isEmpty(user.getCompanyIds()) ? "[]" : JsonUtils.toJsonString(user.getCompanyIds()))
|
||||||
.put(LoginUser.INFO_KEY_DEPT_IDS, CollUtil.isEmpty(user.getDeptIds()) ? "[]" : JsonUtils.toJsonString(user.getDeptIds()))
|
.put(LoginUser.INFO_KEY_DEPT_IDS, CollUtil.isEmpty(user.getDeptIds()) ? "[]" : JsonUtils.toJsonString(user.getDeptIds()))
|
||||||
.put(LoginUser.INFO_KEY_COMPANY_DEPT_SET, CollUtil.isEmpty(user.getCompanyDeptInfos()) ? "[]" : JsonUtils.toJsonString(user.getCompanyDeptInfos()))
|
.put(LoginUser.INFO_KEY_COMPANY_DEPT_SET, CollUtil.isEmpty(user.getCompanyDeptInfos()) ? "[]" : JsonUtils.toJsonString(user.getCompanyDeptInfos()))
|
||||||
|
|||||||
Reference in New Issue
Block a user