2
0

feat: 用户所属平台标识,限制用户平台只能访问指定前缀的模块地址

This commit is contained in:
TsMask
2024-11-27 16:44:49 +08:00
parent 724e9e4775
commit dd62a85f51
7 changed files with 54 additions and 2 deletions

View File

@@ -46,6 +46,10 @@ public class FeignRequestInterceptor implements RequestInterceptor
{
requestTemplate.header(SecurityConstants.AUTHORIZATION_HEADER, authentication);
}
String platform = headers.get(SecurityConstants.DETAILS_PLATFORM);
if (StringUtils.isNotEmpty(platform)) {
requestTemplate.header(SecurityConstants.DETAILS_PLATFORM, platform);
}
// 配置客户端IP
requestTemplate.header("X-Forwarded-For", IpUtils.getIpAddr());

View File

@@ -28,6 +28,7 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor
return true;
}
SecurityContextHolder.setPlatform(ServletUtils.getHeader(request, SecurityConstants.DETAILS_PLATFORM));
SecurityContextHolder.setUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USER_ID));
SecurityContextHolder.setUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME));
SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY));

View File

@@ -52,15 +52,18 @@ public class TokenService
String token = IdUtils.fastUUID();
Long userId = 0L;
String userName = "";
String platform = "";
T user = loginUser.getUser();
if (user instanceof SysUser) {
SysUser sysUser = (SysUser) user;
userId = sysUser.getUserId();
userName = sysUser.getUserName();
userName = sysUser.getUserName();
platform = "system";
}else if (user instanceof UUser) {
UUser uUser = (UUser) user;
userId = uUser.getUserId();
userName = uUser.getUserName();
platform = "user";
}
loginUser.setToken(token);
loginUser.setUserid(userId);
@@ -73,6 +76,7 @@ public class TokenService
claimsMap.put(SecurityConstants.USER_KEY, token);
claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
claimsMap.put(SecurityConstants.DETAILS_PLATFORM, platform);
// 接口返回信息
Map<String, Object> rspMap = new HashMap<String, Object>();