diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java index 1720d073..1815153c 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java @@ -27,4 +27,6 @@ public class AuthLoginRespVO { @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime expiresTime; + private Long tenantId; + } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java index a86cedab..d7e17854 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java @@ -52,7 +52,7 @@ public class AuthPermissionInfoRespVO { @Schema(description = "用户邮箱", example = "yudao@iocoder.cn") private String email; - + private Long tenantId; } @Schema(description = "管理后台 - 登录用户的菜单信息 Response VO") diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java index 648382c1..9bb24a47 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java @@ -68,6 +68,8 @@ public class UserSaveReqVO { private Integer status; + private Long tenantId; + // ========== 仅【创建】时,需要传递的字段 ========== @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java index ef235ed0..5dce3869 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.oauth2; import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,7 +27,7 @@ import java.util.Map; @KeySequence("system_oauth2_access_token_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data @EqualsAndHashCode(callSuper = true) -public class OAuth2AccessTokenDO extends TenantBaseDO { +public class OAuth2AccessTokenDO extends BaseDO { /** * 编号,数据库递增 @@ -71,5 +72,8 @@ public class OAuth2AccessTokenDO extends TenantBaseDO { * 过期时间 */ private LocalDateTime expiresTime; - + /** + * 多租户编号 + */ + private Long tenantId; } diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java index c37d8135..20a7a1f0 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java @@ -9,7 +9,7 @@ import java.util.Map; /** * 管理后台的认证 Service 接口 - * + *

* 提供用户的登录、登出的能力 * * @author 芋道源码 @@ -36,7 +36,7 @@ public interface AdminAuthService { /** * 基于 token 退出登录 * - * @param token token + * @param token token * @param logType 登出类型 */ void logout(String token, Integer logType); @@ -87,7 +87,7 @@ public interface AdminAuthService { */ void resetPassword(AuthResetPasswordReqVO reqVO); - WxLoginRespVO getSession( WxLoginReqVO reqVO); + WxLoginRespVO getSession(WxLoginReqVO reqVO); String getAccessToken(); diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java index fa8af203..3b82d000 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java @@ -230,6 +230,8 @@ public class AdminAuthServiceImpl implements AdminAuthService { // 创建访问令牌 OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(userId, getUserType().getValue(), OAuth2ClientConstants.CLIENT_ID_DEFAULT, null); + AdminUserDO user = userService.getUser(userId); + accessTokenDO.setTenantId(user.getTenantId()); // 构建返回结果 return AuthConvert.INSTANCE.convert(accessTokenDO); } @@ -377,6 +379,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { adminUserDO.setStatus(CommonStatusEnum.DISABLE.getStatus()); adminUserDO.setPassword("123456"); adminUserDO.setIsSynchronize(1); + adminUserDO.setTenantId(1L); userService.createUser(adminUserDO); return true; } else { diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java index fb0e756a..cfeba5a1 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java @@ -177,6 +177,7 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { .setUserId(userId).setUserType(userType) .setClientId(clientDO.getClientId()).setScopes(scopes) .setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getRefreshTokenValiditySeconds())); + refreshToken.setTenantId(TenantContextHolder.getTenantId()); oauth2RefreshTokenMapper.insert(refreshToken); return refreshToken; } diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index 79117279..51a01054 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -281,7 +281,7 @@ yudao: - /admin-api/system/auth/get-session - /admin-api/system/auth/get-phone-number - /admin-api/system/auth/api/user-add - - /admin-api/system/api/user-info + - /admin-api/system/auth/api/user-info ignore-visit-urls: - /admin-api/system/user/profile/** - /admin-api/system/auth/**