Commit 7d1deab48bf9e4285d5ef59559cd7d05c4a5d8e8
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
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
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
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; |