Commit 7d1deab48bf9e4285d5ef59559cd7d05c4a5d8e8

Authored by YunaiV
1 parent aa8fb4ac

调整包结构,oauth2 独立

Showing 40 changed files with 135 additions and 70 deletions
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/auth/OAuth2TokenApiImpl.java
@@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenCreateReqDTO @@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenCreateReqDTO
5 import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenRespDTO; 5 import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenRespDTO;
6 import cn.iocoder.yudao.module.system.convert.auth.OAuth2TokenConvert; 6 import cn.iocoder.yudao.module.system.convert.auth.OAuth2TokenConvert;
7 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO;
8 -import cn.iocoder.yudao.module.system.service.auth.OAuth2TokenService; 8 +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService;
9 import org.springframework.stereotype.Service; 9 import org.springframework.stereotype.Service;
10 10
11 import javax.annotation.Resource; 11 import javax.annotation.Resource;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; @@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6 import cn.iocoder.yudao.framework.common.util.collection.SetUtils; 6 import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
8 import cn.iocoder.yudao.framework.security.config.SecurityProperties; 8 import cn.iocoder.yudao.framework.security.config.SecurityProperties;
9 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.*; 9 +import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*;
10 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; 10 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert;
11 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; 11 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
12 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; 12 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/auth/AuthLoginReqVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; 1 +package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/auth/AuthLoginRespVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; 1 +package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/auth/AuthMenuRespVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthMenuRespVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; 1 +package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/auth/AuthPermissionInfoRespVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; 1 +package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/auth/AuthSmsLoginReqVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; 1 +package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/auth/AuthSmsSendReqVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; 1 +package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
2 2
3 import cn.iocoder.yudao.framework.common.validation.InEnum; 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
4 import cn.iocoder.yudao.framework.common.validation.Mobile; 4 import cn.iocoder.yudao.framework.common.validation.Mobile;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/auth/AuthSocialBindLoginReqVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialBindLoginReqVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; 1 +package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
2 2
3 import cn.iocoder.yudao.framework.common.validation.InEnum; 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
4 import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; 4 import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/auth/AuthSocialQuickLoginReqVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialQuickLoginReqVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; 1 +package cn.iocoder.yudao.module.system.controller.admin.auth.vo;
2 2
3 import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; 3 import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
4 import cn.iocoder.yudao.framework.common.validation.InEnum; 4 import cn.iocoder.yudao.framework.common.validation.InEnum;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/OAuth2ClientController.http renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2ClientController.http
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/OAuth2ClientController.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2ClientController.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth; 1 +package cn.iocoder.yudao.module.system.controller.admin.oauth2;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientCreateReqVO;  
6 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientPageReqVO;  
7 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientRespVO;  
8 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientUpdateReqVO; 5 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientCreateReqVO;
  6 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO;
  7 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientRespVO;
  8 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientUpdateReqVO;
9 import cn.iocoder.yudao.module.system.convert.auth.OAuth2ClientConvert; 9 import cn.iocoder.yudao.module.system.convert.auth.OAuth2ClientConvert;
10 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; 10 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO;
11 -import cn.iocoder.yudao.module.system.service.auth.OAuth2ClientService; 11 +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ClientService;
12 import io.swagger.annotations.Api; 12 import io.swagger.annotations.Api;
13 import io.swagger.annotations.ApiImplicitParam; 13 import io.swagger.annotations.ApiImplicitParam;
14 import io.swagger.annotations.ApiOperation; 14 import io.swagger.annotations.ApiOperation;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/OAuth2Controller.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2Controller.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth; 1 +package cn.iocoder.yudao.module.system.controller.admin.oauth2;
2 2
3 import cn.hutool.core.util.ObjectUtil; 3 import cn.hutool.core.util.ObjectUtil;
4 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
@@ -7,8 +7,9 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; @@ -7,8 +7,9 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
7 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 7 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
8 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 8 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
9 import cn.iocoder.yudao.module.system.enums.auth.OAuth2GrantTypeEnum; 9 import cn.iocoder.yudao.module.system.enums.auth.OAuth2GrantTypeEnum;
10 -import cn.iocoder.yudao.module.system.service.auth.OAuth2ApproveService;  
11 -import cn.iocoder.yudao.module.system.service.auth.OAuth2ClientService; 10 +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ApproveService;
  11 +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ClientService;
  12 +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2GrantService;
12 import io.swagger.annotations.Api; 13 import io.swagger.annotations.Api;
13 import io.swagger.annotations.ApiImplicitParam; 14 import io.swagger.annotations.ApiImplicitParam;
14 import io.swagger.annotations.ApiImplicitParams; 15 import io.swagger.annotations.ApiImplicitParams;
@@ -43,6 +44,8 @@ public class OAuth2Controller { @@ -43,6 +44,8 @@ public class OAuth2Controller {
43 // GET oauth/authorize AuthorizationEndpoint 44 // GET oauth/authorize AuthorizationEndpoint
44 45
45 @Resource 46 @Resource
  47 + private OAuth2GrantService oAuth2GrantService;
  48 + @Resource
46 private OAuth2ClientService oauth2ClientService; 49 private OAuth2ClientService oauth2ClientService;
47 @Resource 50 @Resource
48 private OAuth2ApproveService oauth2ApproveService; 51 private OAuth2ApproveService oauth2ApproveService;
@@ -56,8 +59,6 @@ public class OAuth2Controller { @@ -56,8 +59,6 @@ public class OAuth2Controller {
56 @ApiImplicitParam(name = "redirect_uri", required = true, value = "重定向 URI", example = "https://www.iocoder.cn", dataTypeClass = String.class), 59 @ApiImplicitParam(name = "redirect_uri", required = true, value = "重定向 URI", example = "https://www.iocoder.cn", dataTypeClass = String.class),
57 @ApiImplicitParam(name = "state", example = "123321", dataTypeClass = String.class) 60 @ApiImplicitParam(name = "state", example = "123321", dataTypeClass = String.class)
58 }) 61 })
59 - // 情况一:满足自动授权,则走类似 approveOrDeny 的逻辑,最终返回是 CommonResult<String>  
60 - // 情况二:如果不满足自动授权,则返回授权相关的展示信息,最终返回是 CommonResult<OAuth2AuthorizeRespInfo>  
61 public CommonResult<Object> authorize(@RequestParam("response_type") String responseType, 62 public CommonResult<Object> authorize(@RequestParam("response_type") String responseType,
62 @RequestParam("client_id") String clientId, 63 @RequestParam("client_id") String clientId,
63 @RequestParam(value = "scope", required = false) String scope, 64 @RequestParam(value = "scope", required = false) String scope,
@@ -92,16 +93,18 @@ public class OAuth2Controller { @@ -92,16 +93,18 @@ public class OAuth2Controller {
92 @ApiImplicitParam(name = "client_id", required = true, value = "客户端编号", example = "tudou", dataTypeClass = String.class), 93 @ApiImplicitParam(name = "client_id", required = true, value = "客户端编号", example = "tudou", dataTypeClass = String.class),
93 @ApiImplicitParam(name = "scope", value = "授权范围", example = "userinfo.read", dataTypeClass = String.class), // 使用 Map<String, Boolean> 格式,Spring MVC 暂时不支持这么接收参数 94 @ApiImplicitParam(name = "scope", value = "授权范围", example = "userinfo.read", dataTypeClass = String.class), // 使用 Map<String, Boolean> 格式,Spring MVC 暂时不支持这么接收参数
94 @ApiImplicitParam(name = "redirect_uri", required = true, value = "重定向 URI", example = "https://www.iocoder.cn", dataTypeClass = String.class), 95 @ApiImplicitParam(name = "redirect_uri", required = true, value = "重定向 URI", example = "https://www.iocoder.cn", dataTypeClass = String.class),
95 - @ApiImplicitParam(name = "approved", value = "用户是否接受", example = "true", dataTypeClass = Boolean.class), // 该参数为 null 时,会基于用户是否已经授权过,进行自动判断 96 + @ApiImplicitParam(name = "autoApprove", required = true, value = "用户是否接受", example = "true", dataTypeClass = Boolean.class),
96 @ApiImplicitParam(name = "state", example = "123321", dataTypeClass = String.class) 97 @ApiImplicitParam(name = "state", example = "123321", dataTypeClass = String.class)
97 }) 98 })
98 @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 99 @OperateLog(enable = false) // 避免 Post 请求被记录操作日志
  100 + // 场景一:【自动授权 autoApprove = true】刚进入 authorize.vue 界面,调用该接口,用户历史已经给该应用做过对应的授权,或者 OAuth2Client 支持该 scope 的自动授权
  101 + // 场景二:【手动授权 autoApprove = false】在 authorize.vue 界面,用户选择好 scope 授权范围,调用该接口,进行授权。此时,approved 为 true 或者 false
99 // 因为前后端分离,Axios 无法很好的处理 302 重定向,所以和 Spring Security OAuth 略有不同,返回结果是重定向的 URL,剩余交给前端处理 102 // 因为前后端分离,Axios 无法很好的处理 302 重定向,所以和 Spring Security OAuth 略有不同,返回结果是重定向的 URL,剩余交给前端处理
100 public CommonResult<String> approveOrDeny(@RequestParam("response_type") String responseType, 103 public CommonResult<String> approveOrDeny(@RequestParam("response_type") String responseType,
101 @RequestParam("client_id") String clientId, 104 @RequestParam("client_id") String clientId,
102 @RequestParam(value = "scope", required = false) String scope, 105 @RequestParam(value = "scope", required = false) String scope,
103 @RequestParam("redirect_uri") String redirectUri, 106 @RequestParam("redirect_uri") String redirectUri,
104 - @RequestParam("approved") Boolean approved, 107 + @RequestParam(value = "autoApprove") Boolean autoApprove,
105 @RequestParam(value = "state", required = false) String state) { 108 @RequestParam(value = "state", required = false) String state) {
106 @SuppressWarnings("unchecked") 109 @SuppressWarnings("unchecked")
107 Map<String, Boolean> scopes = JsonUtils.parseObject(scope, Map.class); 110 Map<String, Boolean> scopes = JsonUtils.parseObject(scope, Map.class);
@@ -114,8 +117,18 @@ public class OAuth2Controller { @@ -114,8 +117,18 @@ public class OAuth2Controller {
114 // 1.2 校验 redirectUri 重定向域名是否合法 + 校验 scope 是否在 Client 授权范围内 117 // 1.2 校验 redirectUri 重定向域名是否合法 + 校验 scope 是否在 Client 授权范围内
115 oauth2ClientService.validOAuthClientFromCache(clientId, grantTypeEnum.getGrantType(), scopes.keySet(), redirectUri); 118 oauth2ClientService.validOAuthClientFromCache(clientId, grantTypeEnum.getGrantType(), scopes.keySet(), redirectUri);
116 119
117 - // 2.1  
118 - // 2.2 120 + // 2.1 假设 approved 为 null,说明是场景一
  121 + if (Boolean.TRUE.equals(autoApprove)) {
  122 + // 如果无法自动授权通过,则返回空 url,前端不进行跳转
  123 + if (!oauth2ApproveService.checkForPreApproval(getLoginUserId(), UserTypeEnum.ADMIN.getValue(), clientId, scopes.keySet())) {
  124 + return success(null);
  125 + }
  126 + } else { // 2.2 假设 approved 非 null,说明是场景二
  127 + // 如果计算后不通过,则跳转一个错误链接
  128 + if (!oauth2ApproveService.updateAfterApproval(getLoginUserId(), UserTypeEnum.ADMIN.getValue(), clientId, scopes)) {
  129 + return success("TODO");
  130 + }
  131 + }
119 132
120 // 3.1 如果是 code 授权码模式,则发放 code 授权码,并重定向 133 // 3.1 如果是 code 授权码模式,则发放 code 授权码,并重定向
121 if (grantTypeEnum == OAuth2GrantTypeEnum.AUTHORIZATION_CODE) { 134 if (grantTypeEnum == OAuth2GrantTypeEnum.AUTHORIZATION_CODE) {
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/OAuth2TokenController.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2TokenController.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth; 1 +package cn.iocoder.yudao.module.system.controller.admin.oauth2;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.token.OAuth2AccessTokenPageReqVO;  
6 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.token.OAuth2AccessTokenRespVO; 5 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO;
  6 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenRespVO;
7 import cn.iocoder.yudao.module.system.convert.auth.OAuth2TokenConvert; 7 import cn.iocoder.yudao.module.system.convert.auth.OAuth2TokenConvert;
8 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; 8 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO;
9 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; 9 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
10 import cn.iocoder.yudao.module.system.service.auth.AdminAuthService; 10 import cn.iocoder.yudao.module.system.service.auth.AdminAuthService;
11 -import cn.iocoder.yudao.module.system.service.auth.OAuth2TokenService; 11 +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService;
12 import io.swagger.annotations.Api; 12 import io.swagger.annotations.Api;
13 import io.swagger.annotations.ApiImplicitParam; 13 import io.swagger.annotations.ApiImplicitParam;
14 import io.swagger.annotations.ApiOperation; 14 import io.swagger.annotations.ApiOperation;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/client/OAuth2ClientBaseVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientBaseVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.client; 1 +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client;
2 2
3 import cn.hutool.core.util.StrUtil; 3 import cn.hutool.core.util.StrUtil;
4 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 4 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/client/OAuth2ClientCreateReqVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientCreateReqVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.client; 1 +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client;
2 2
3 import lombok.*; 3 import lombok.*;
4 import io.swagger.annotations.*; 4 import io.swagger.annotations.*;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/client/OAuth2ClientPageReqVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientPageReqVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.client; 1 +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client;
2 2
3 import lombok.*; 3 import lombok.*;
4 import io.swagger.annotations.*; 4 import io.swagger.annotations.*;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/client/OAuth2ClientRespVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.client; 1 +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/client/OAuth2ClientUpdateReqVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientUpdateReqVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.client; 1 +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/token/OAuth2AccessTokenPageReqVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.token; 1 +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageParam; 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 import io.swagger.annotations.ApiModel; 4 import io.swagger.annotations.ApiModel;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/token/OAuth2AccessTokenRespVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java
1 -package cn.iocoder.yudao.module.system.controller.admin.auth.vo.token; 1 +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/auth/AuthConvert.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; @@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
4 import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO; 4 import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO;
5 import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO; 5 import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO;
6 import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO; 6 import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;
7 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.*; 7 +import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*;
8 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; 8 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO;
9 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; 9 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
10 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; 10 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/auth/OAuth2ClientConvert.java
1 package cn.iocoder.yudao.module.system.convert.auth; 1 package cn.iocoder.yudao.module.system.convert.auth;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientCreateReqVO;  
5 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientRespVO;  
6 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientUpdateReqVO; 4 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientCreateReqVO;
  5 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientRespVO;
  6 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientUpdateReqVO;
7 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO;
8 import org.mapstruct.Mapper; 8 import org.mapstruct.Mapper;
9 import org.mapstruct.factory.Mappers; 9 import org.mapstruct.factory.Mappers;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/auth/OAuth2TokenConvert.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.convert.auth; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.convert.auth;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenCheckRespDTO; 4 import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenCheckRespDTO;
5 import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenRespDTO; 5 import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenRespDTO;
6 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.token.OAuth2AccessTokenRespVO; 6 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenRespVO;
7 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO;
8 import org.mapstruct.Mapper; 8 import org.mapstruct.Mapper;
9 import org.mapstruct.factory.Mappers; 9 import org.mapstruct.factory.Mappers;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/auth/OAuth2AccessTokenMapper.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.auth; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.auth;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
6 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.token.OAuth2AccessTokenPageReqVO; 6 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO;
7 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO;
8 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
9 9
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/auth/OAuth2ClientMapper.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.auth; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.auth;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
6 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientPageReqVO; 6 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO;
7 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO;
8 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
9 import org.apache.ibatis.annotations.Select; 9 import org.apache.ibatis.annotations.Select;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/auth/OAuth2ClientRefreshConsumer.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.mq.consumer.auth; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.mq.consumer.auth;
2 2
3 import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener; 3 import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener;
4 import cn.iocoder.yudao.module.system.mq.message.auth.OAuth2ClientRefreshMessage; 4 import cn.iocoder.yudao.module.system.mq.message.auth.OAuth2ClientRefreshMessage;
5 -import cn.iocoder.yudao.module.system.service.auth.OAuth2ClientService; 5 +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ClientService;
6 import lombok.extern.slf4j.Slf4j; 6 import lombok.extern.slf4j.Slf4j;
7 import org.springframework.stereotype.Component; 7 import org.springframework.stereotype.Component;
8 8
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java
1 package cn.iocoder.yudao.module.system.service.auth; 1 package cn.iocoder.yudao.module.system.service.auth;
2 2
3 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.*; 3 +import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*;
4 4
5 import javax.validation.Valid; 5 import javax.validation.Valid;
6 6
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java
@@ -8,7 +8,7 @@ import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; @@ -8,7 +8,7 @@ import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
8 import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils; 8 import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils;
9 import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; 9 import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
10 import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; 10 import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
11 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.*; 11 +import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*;
12 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; 12 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert;
13 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; 13 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO;
14 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; 14 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
@@ -19,6 +19,7 @@ import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum; @@ -19,6 +19,7 @@ import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
19 import cn.iocoder.yudao.module.system.service.common.CaptchaService; 19 import cn.iocoder.yudao.module.system.service.common.CaptchaService;
20 import cn.iocoder.yudao.module.system.service.logger.LoginLogService; 20 import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
21 import cn.iocoder.yudao.module.system.service.member.MemberService; 21 import cn.iocoder.yudao.module.system.service.member.MemberService;
  22 +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService;
22 import cn.iocoder.yudao.module.system.service.social.SocialUserService; 23 import cn.iocoder.yudao.module.system.service.social.SocialUserService;
23 import cn.iocoder.yudao.module.system.service.user.AdminUserService; 24 import cn.iocoder.yudao.module.system.service.user.AdminUserService;
24 import com.google.common.annotations.VisibleForTesting; 25 import com.google.common.annotations.VisibleForTesting;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/OAuth2ApproveService.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveService.java
1 -package cn.iocoder.yudao.module.system.service.auth; 1 +package cn.iocoder.yudao.module.system.service.oauth2;
2 2
3 import java.util.Collection; 3 import java.util.Collection;
  4 +import java.util.Map;
4 5
5 /** 6 /**
6 * OAuth2 批准 Service 接口 7 * OAuth2 批准 Service 接口
@@ -24,4 +25,15 @@ public interface OAuth2ApproveService { @@ -24,4 +25,15 @@ public interface OAuth2ApproveService {
24 */ 25 */
25 boolean checkForPreApproval(Long userId, Integer userType, String clientId, Collection<String> scopes); 26 boolean checkForPreApproval(Long userId, Integer userType, String clientId, Collection<String> scopes);
26 27
  28 + /**
  29 + * 在用户发起批准时,基于 scopes 的选项,计算最终是否通过
  30 + *
  31 + * @param userId 用户编号
  32 + * @param userType 用户类型
  33 + * @param clientId 客户端编号
  34 + * @param scopes 授权范围
  35 + * @return 是否授权通过
  36 + */
  37 + boolean updateAfterApproval(Long userId, Integer userType, String clientId, Map<String, Boolean> scopes);
  38 +
27 } 39 }
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/OAuth2ApproveServiceImpl.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImpl.java
1 -package cn.iocoder.yudao.module.system.service.auth; 1 +package cn.iocoder.yudao.module.system.service.oauth2;
2 2
3 import org.springframework.stereotype.Service; 3 import org.springframework.stereotype.Service;
4 4
5 import java.util.Collection; 5 import java.util.Collection;
  6 +import java.util.Map;
6 7
7 /** 8 /**
8 * OAuth2 批准 Service 实现类 9 * OAuth2 批准 Service 实现类
@@ -14,7 +15,12 @@ public class OAuth2ApproveServiceImpl implements OAuth2ApproveService { @@ -14,7 +15,12 @@ public class OAuth2ApproveServiceImpl implements OAuth2ApproveService {
14 15
15 @Override 16 @Override
16 public boolean checkForPreApproval(Long userId, Integer userType, String clientId, Collection<String> scopes) { 17 public boolean checkForPreApproval(Long userId, Integer userType, String clientId, Collection<String> scopes) {
17 - return false; 18 + return true;
  19 + }
  20 +
  21 + @Override
  22 + public boolean updateAfterApproval(Long userId, Integer userType, String clientId, Map<String, Boolean> scopes) {
  23 + return true;
18 } 24 }
19 25
20 } 26 }
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/OAuth2ClientService.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientService.java
1 -package cn.iocoder.yudao.module.system.service.auth; 1 +package cn.iocoder.yudao.module.system.service.oauth2;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientCreateReqVO;  
5 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientPageReqVO;  
6 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientUpdateReqVO; 4 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientCreateReqVO;
  5 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO;
  6 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientUpdateReqVO;
7 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO;
8 8
9 import javax.validation.Valid; 9 import javax.validation.Valid;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/OAuth2ClientServiceImpl.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientServiceImpl.java
1 -package cn.iocoder.yudao.module.system.service.auth; 1 +package cn.iocoder.yudao.module.system.service.oauth2;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 import cn.iocoder.yudao.framework.common.util.string.StrUtils; 7 import cn.iocoder.yudao.framework.common.util.string.StrUtils;
8 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientCreateReqVO;  
9 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientPageReqVO;  
10 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientUpdateReqVO; 8 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientCreateReqVO;
  9 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO;
  10 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientUpdateReqVO;
11 import cn.iocoder.yudao.module.system.convert.auth.OAuth2ClientConvert; 11 import cn.iocoder.yudao.module.system.convert.auth.OAuth2ClientConvert;
12 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; 12 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO;
13 import cn.iocoder.yudao.module.system.dal.mysql.auth.OAuth2ClientMapper; 13 import cn.iocoder.yudao.module.system.dal.mysql.auth.OAuth2ClientMapper;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/OAuth2CodeService.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeService.java
1 -package cn.iocoder.yudao.module.system.service.auth; 1 +package cn.iocoder.yudao.module.system.service.oauth2;
2 2
3 /** 3 /**
4 * OAuth2.0 授权码 Service 接口 4 * OAuth2.0 授权码 Service 接口
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminOAuth2Service.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantService.java
1 -package cn.iocoder.yudao.module.system.service.auth; 1 +package cn.iocoder.yudao.module.system.service.oauth2;
2 2
3 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; 3 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO;
4 4
5 import java.util.Collection; 5 import java.util.Collection;
6 6
7 /** 7 /**
8 - * 管理后台的 OAuth2 Service 接口 8 + * OAuth2 授予 Service 接口
  9 + *
  10 + * 从功能上,和 Spring Security OAuth 的 TokenGranter 的功能,提供访问令牌、刷新令牌的操作
9 * 11 *
10 * 将自身的 AdminUser 用户,授权给第三方应用,采用 OAuth2.0 的协议。 12 * 将自身的 AdminUser 用户,授权给第三方应用,采用 OAuth2.0 的协议。
11 * 13 *
@@ -14,7 +16,7 @@ import java.util.Collection; @@ -14,7 +16,7 @@ import java.util.Collection;
14 * 16 *
15 * @author 芋道源码 17 * @author 芋道源码
16 */ 18 */
17 -public interface AdminOAuth2Service { 19 +public interface OAuth2GrantService {
18 20
19 // ImplicitTokenGranter 21 // ImplicitTokenGranter
20 OAuth2AccessTokenDO grantImplicit(Long userId, Integer userType, 22 OAuth2AccessTokenDO grantImplicit(Long userId, Integer userType,
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.service.oauth2;
  2 +
  3 +import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO;
  4 +import org.springframework.stereotype.Service;
  5 +
  6 +import java.util.Collection;
  7 +
  8 +/**
  9 + * OAuth2 授予 Service 实现类
  10 + *
  11 + * @author 芋道源码
  12 + */
  13 +@Service
  14 +public class OAuth2GrantServiceImpl implements OAuth2GrantService {
  15 +
  16 + @Override
  17 + public OAuth2AccessTokenDO grantImplicit(Long userId, Integer userType,
  18 + String clientId, Collection<String> scopes) {
  19 + return null;
  20 + }
  21 +
  22 + @Override
  23 + public String grantAuthorizationCode(Long userId, Integer userType,
  24 + String clientId, Collection<String> scopes,
  25 + String redirectUri, String state) {
  26 + return null;
  27 + }
  28 +
  29 +}
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/OAuth2TokenService.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenService.java
1 -package cn.iocoder.yudao.module.system.service.auth; 1 +package cn.iocoder.yudao.module.system.service.oauth2;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.token.OAuth2AccessTokenPageReqVO; 4 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO;
5 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; 5 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO;
6 6
7 /** 7 /**
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/OAuth2TokenServiceImpl.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java
1 -package cn.iocoder.yudao.module.system.service.auth; 1 +package cn.iocoder.yudao.module.system.service.oauth2;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.IdUtil; 4 import cn.hutool.core.util.IdUtil;
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstant @@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstant
7 import cn.iocoder.yudao.framework.common.pojo.PageResult; 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 import cn.iocoder.yudao.framework.common.util.date.DateUtils; 8 import cn.iocoder.yudao.framework.common.util.date.DateUtils;
9 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; 9 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
10 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.token.OAuth2AccessTokenPageReqVO; 10 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO;
11 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; 11 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO;
12 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; 12 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO;
13 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2RefreshTokenDO; 13 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2RefreshTokenDO;
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/auth/AuthServiceImplTest.java
@@ -5,8 +5,8 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; @@ -5,8 +5,8 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
5 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; 5 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
6 import cn.iocoder.yudao.framework.test.core.util.AssertUtils; 6 import cn.iocoder.yudao.framework.test.core.util.AssertUtils;
7 import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; 7 import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
8 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthLoginReqVO;  
9 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthLoginRespVO; 8 +import cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthLoginReqVO;
  9 +import cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthLoginRespVO;
10 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; 10 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO;
11 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; 11 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
12 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; 12 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
@@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; @@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
14 import cn.iocoder.yudao.module.system.service.common.CaptchaService; 14 import cn.iocoder.yudao.module.system.service.common.CaptchaService;
15 import cn.iocoder.yudao.module.system.service.logger.LoginLogService; 15 import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
16 import cn.iocoder.yudao.module.system.service.member.MemberService; 16 import cn.iocoder.yudao.module.system.service.member.MemberService;
  17 +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService;
17 import cn.iocoder.yudao.module.system.service.social.SocialUserService; 18 import cn.iocoder.yudao.module.system.service.social.SocialUserService;
18 import cn.iocoder.yudao.module.system.service.user.AdminUserService; 19 import cn.iocoder.yudao.module.system.service.user.AdminUserService;
19 import org.junit.jupiter.api.BeforeEach; 20 import org.junit.jupiter.api.BeforeEach;
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/auth/OAuth2ClientServiceImplTest.java
@@ -3,12 +3,13 @@ package cn.iocoder.yudao.module.system.service.auth; @@ -3,12 +3,13 @@ package cn.iocoder.yudao.module.system.service.auth;
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; 5 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
6 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientCreateReqVO;  
7 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientPageReqVO;  
8 -import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientUpdateReqVO; 6 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientCreateReqVO;
  7 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO;
  8 +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientUpdateReqVO;
9 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; 9 import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO;
10 import cn.iocoder.yudao.module.system.dal.mysql.auth.OAuth2ClientMapper; 10 import cn.iocoder.yudao.module.system.dal.mysql.auth.OAuth2ClientMapper;
11 import cn.iocoder.yudao.module.system.mq.producer.auth.OAuth2ClientProducer; 11 import cn.iocoder.yudao.module.system.mq.producer.auth.OAuth2ClientProducer;
  12 +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ClientServiceImpl;
12 import org.junit.jupiter.api.Disabled; 13 import org.junit.jupiter.api.Disabled;
13 import org.junit.jupiter.api.Test; 14 import org.junit.jupiter.api.Test;
14 import org.springframework.boot.test.mock.mockito.MockBean; 15 import org.springframework.boot.test.mock.mockito.MockBean;