diff --git a/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java b/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java index 755d278b..0a1aa9dd 100644 --- a/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java +++ b/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java @@ -18,6 +18,7 @@ package org.springblade.auth.service; import lombok.AllArgsConstructor; import lombok.SneakyThrows; +import org.apache.commons.lang3.StringUtils; import org.springblade.auth.constant.AuthConstant; import org.springblade.auth.enums.BladeUserEnum; import org.springblade.auth.utils.TokenUtil; @@ -52,11 +53,13 @@ public class BladeUserDetailsServiceImpl implements UserDetailsService { public BladeUserDetails loadUserByUsername(String username) { HttpServletRequest request = WebUtil.getRequest(); // 获取租户 - String tenantId = request.getHeader(TokenUtil.TENANT_HEADER_KEY); - if (StringUtil.isBlank(tenantId)) { + String headerTenant = request.getHeader(TokenUtil.TENANT_HEADER_KEY); + String paramTenant = request.getParameter(TokenUtil.TENANT_PARAM_KEY); + if (StringUtil.isAllBlank(headerTenant, paramTenant)) { throw new UserDeniedAuthorizationException(TokenUtil.TENANT_NOT_FOUND); } - + // 租户ID + String tenantId = StringUtils.isBlank(headerTenant) ? paramTenant : headerTenant; // 获取用户类型 String userType = Func.toStr(request.getHeader(TokenUtil.USER_TYPE_HEADER_KEY), TokenUtil.DEFAULT_USER_TYPE); diff --git a/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java b/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java index 55d8f3a4..3ba3b446 100644 --- a/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java +++ b/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java @@ -50,6 +50,7 @@ public class TokenUtil { public final static String TENANT_HEADER_KEY = "Tenant-Id"; + public final static String TENANT_PARAM_KEY = "tenant_id"; public final static String DEFAULT_TENANT_ID = "000000"; public final static String TENANT_NOT_FOUND = "租户ID未找到"; public final static String USER_TYPE_HEADER_KEY = "User-Type";