mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-30 09:48:43 +08:00 
			
		
		
		
	调整包结构,oauth2 独立
This commit is contained in:
		| @@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenCreateReqDTO | |||||||
| import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenRespDTO; | import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenRespDTO; | ||||||
| import cn.iocoder.yudao.module.system.convert.auth.OAuth2TokenConvert; | import cn.iocoder.yudao.module.system.convert.auth.OAuth2TokenConvert; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | ||||||
| import cn.iocoder.yudao.module.system.service.auth.OAuth2TokenService; | import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService; | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
|  |  | ||||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; | |||||||
| import cn.iocoder.yudao.framework.common.util.collection.SetUtils; | import cn.iocoder.yudao.framework.common.util.collection.SetUtils; | ||||||
| import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; | import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; | ||||||
| import cn.iocoder.yudao.framework.security.config.SecurityProperties; | import cn.iocoder.yudao.framework.security.config.SecurityProperties; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.*; | import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*; | ||||||
| import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; | import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; | import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; | import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; | package cn.iocoder.yudao.module.system.controller.admin.auth.vo; | ||||||
| 
 | 
 | ||||||
| import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||||
| import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; | package cn.iocoder.yudao.module.system.controller.admin.auth.vo; | ||||||
| 
 | 
 | ||||||
| import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||||
| import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; | package cn.iocoder.yudao.module.system.controller.admin.auth.vo; | ||||||
| 
 | 
 | ||||||
| import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||||
| import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; | package cn.iocoder.yudao.module.system.controller.admin.auth.vo; | ||||||
| 
 | 
 | ||||||
| import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||||
| import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; | package cn.iocoder.yudao.module.system.controller.admin.auth.vo; | ||||||
| 
 | 
 | ||||||
| import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||||
| import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; | package cn.iocoder.yudao.module.system.controller.admin.auth.vo; | ||||||
| 
 | 
 | ||||||
| import cn.iocoder.yudao.framework.common.validation.InEnum; | import cn.iocoder.yudao.framework.common.validation.InEnum; | ||||||
| import cn.iocoder.yudao.framework.common.validation.Mobile; | import cn.iocoder.yudao.framework.common.validation.Mobile; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; | package cn.iocoder.yudao.module.system.controller.admin.auth.vo; | ||||||
| 
 | 
 | ||||||
| import cn.iocoder.yudao.framework.common.validation.InEnum; | import cn.iocoder.yudao.framework.common.validation.InEnum; | ||||||
| import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; | import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; | package cn.iocoder.yudao.module.system.controller.admin.auth.vo; | ||||||
| 
 | 
 | ||||||
| import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; | import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; | ||||||
| import cn.iocoder.yudao.framework.common.validation.InEnum; | import cn.iocoder.yudao.framework.common.validation.InEnum; | ||||||
| @@ -1,14 +1,14 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth; | package cn.iocoder.yudao.module.system.controller.admin.oauth2; | ||||||
| 
 | 
 | ||||||
| import cn.iocoder.yudao.framework.common.pojo.CommonResult; | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientCreateReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientCreateReqVO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientPageReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientRespVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientRespVO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientUpdateReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientUpdateReqVO; | ||||||
| import cn.iocoder.yudao.module.system.convert.auth.OAuth2ClientConvert; | import cn.iocoder.yudao.module.system.convert.auth.OAuth2ClientConvert; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; | ||||||
| import cn.iocoder.yudao.module.system.service.auth.OAuth2ClientService; | import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ClientService; | ||||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||||
| import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth; | package cn.iocoder.yudao.module.system.controller.admin.oauth2; | ||||||
| 
 | 
 | ||||||
| import cn.hutool.core.util.ObjectUtil; | import cn.hutool.core.util.ObjectUtil; | ||||||
| import cn.hutool.core.util.StrUtil; | import cn.hutool.core.util.StrUtil; | ||||||
| @@ -7,8 +7,9 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; | |||||||
| import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | ||||||
| import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; | import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; | ||||||
| import cn.iocoder.yudao.module.system.enums.auth.OAuth2GrantTypeEnum; | import cn.iocoder.yudao.module.system.enums.auth.OAuth2GrantTypeEnum; | ||||||
| import cn.iocoder.yudao.module.system.service.auth.OAuth2ApproveService; | import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ApproveService; | ||||||
| import cn.iocoder.yudao.module.system.service.auth.OAuth2ClientService; | import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ClientService; | ||||||
|  | import cn.iocoder.yudao.module.system.service.oauth2.OAuth2GrantService; | ||||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||||
| import io.swagger.annotations.ApiImplicitParams; | import io.swagger.annotations.ApiImplicitParams; | ||||||
| @@ -42,6 +43,8 @@ public class OAuth2Controller { | |||||||
| 
 | 
 | ||||||
| //    GET  oauth/authorize AuthorizationEndpoint | //    GET  oauth/authorize AuthorizationEndpoint | ||||||
| 
 | 
 | ||||||
|  |     @Resource | ||||||
|  |     private OAuth2GrantService oAuth2GrantService; | ||||||
|     @Resource |     @Resource | ||||||
|     private OAuth2ClientService oauth2ClientService; |     private OAuth2ClientService oauth2ClientService; | ||||||
|     @Resource |     @Resource | ||||||
| @@ -56,8 +59,6 @@ public class OAuth2Controller { | |||||||
|             @ApiImplicitParam(name = "redirect_uri", required = true, value = "重定向 URI", example = "https://www.iocoder.cn", dataTypeClass = String.class), |             @ApiImplicitParam(name = "redirect_uri", required = true, value = "重定向 URI", example = "https://www.iocoder.cn", dataTypeClass = String.class), | ||||||
|             @ApiImplicitParam(name = "state", example = "123321", dataTypeClass = String.class) |             @ApiImplicitParam(name = "state", example = "123321", dataTypeClass = String.class) | ||||||
|     }) |     }) | ||||||
|     // 情况一:满足自动授权,则走类似 approveOrDeny 的逻辑,最终返回是 CommonResult<String> |  | ||||||
|     // 情况二:如果不满足自动授权,则返回授权相关的展示信息,最终返回是 CommonResult<OAuth2AuthorizeRespInfo> |  | ||||||
|     public CommonResult<Object> authorize(@RequestParam("response_type") String responseType, |     public CommonResult<Object> authorize(@RequestParam("response_type") String responseType, | ||||||
|                                           @RequestParam("client_id") String clientId, |                                           @RequestParam("client_id") String clientId, | ||||||
|                                           @RequestParam(value = "scope", required = false) String scope, |                                           @RequestParam(value = "scope", required = false) String scope, | ||||||
| @@ -92,16 +93,18 @@ public class OAuth2Controller { | |||||||
|             @ApiImplicitParam(name = "client_id", required = true, value = "客户端编号", example = "tudou", dataTypeClass = String.class), |             @ApiImplicitParam(name = "client_id", required = true, value = "客户端编号", example = "tudou", dataTypeClass = String.class), | ||||||
|             @ApiImplicitParam(name = "scope", value = "授权范围", example = "userinfo.read", dataTypeClass = String.class), // 使用 Map<String, Boolean> 格式,Spring MVC 暂时不支持这么接收参数 |             @ApiImplicitParam(name = "scope", value = "授权范围", example = "userinfo.read", dataTypeClass = String.class), // 使用 Map<String, Boolean> 格式,Spring MVC 暂时不支持这么接收参数 | ||||||
|             @ApiImplicitParam(name = "redirect_uri", required = true, value = "重定向 URI", example = "https://www.iocoder.cn", dataTypeClass = String.class), |             @ApiImplicitParam(name = "redirect_uri", required = true, value = "重定向 URI", example = "https://www.iocoder.cn", dataTypeClass = String.class), | ||||||
|             @ApiImplicitParam(name = "approved", value = "用户是否接受", example = "true", dataTypeClass = Boolean.class), // 该参数为 null 时,会基于用户是否已经授权过,进行自动判断 |             @ApiImplicitParam(name = "autoApprove", required = true, value = "用户是否接受", example = "true", dataTypeClass = Boolean.class), | ||||||
|             @ApiImplicitParam(name = "state", example = "123321", dataTypeClass = String.class) |             @ApiImplicitParam(name = "state", example = "123321", dataTypeClass = String.class) | ||||||
|     }) |     }) | ||||||
|     @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 |     @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 | ||||||
|  |     // 场景一:【自动授权 autoApprove = true】刚进入 authorize.vue 界面,调用该接口,用户历史已经给该应用做过对应的授权,或者 OAuth2Client 支持该 scope 的自动授权 | ||||||
|  |     // 场景二:【手动授权 autoApprove = false】在 authorize.vue 界面,用户选择好 scope 授权范围,调用该接口,进行授权。此时,approved 为 true 或者 false | ||||||
|     // 因为前后端分离,Axios 无法很好的处理 302 重定向,所以和 Spring Security OAuth 略有不同,返回结果是重定向的 URL,剩余交给前端处理 |     // 因为前后端分离,Axios 无法很好的处理 302 重定向,所以和 Spring Security OAuth 略有不同,返回结果是重定向的 URL,剩余交给前端处理 | ||||||
|     public CommonResult<String> approveOrDeny(@RequestParam("response_type") String responseType, |     public CommonResult<String> approveOrDeny(@RequestParam("response_type") String responseType, | ||||||
|                                               @RequestParam("client_id") String clientId, |                                               @RequestParam("client_id") String clientId, | ||||||
|                                               @RequestParam(value = "scope", required = false) String scope, |                                               @RequestParam(value = "scope", required = false) String scope, | ||||||
|                                               @RequestParam("redirect_uri") String redirectUri, |                                               @RequestParam("redirect_uri") String redirectUri, | ||||||
|                                               @RequestParam("approved") Boolean approved, |                                               @RequestParam(value = "autoApprove") Boolean autoApprove, | ||||||
|                                               @RequestParam(value = "state", required = false) String state) { |                                               @RequestParam(value = "state", required = false) String state) { | ||||||
|         @SuppressWarnings("unchecked") |         @SuppressWarnings("unchecked") | ||||||
|         Map<String, Boolean> scopes = JsonUtils.parseObject(scope, Map.class); |         Map<String, Boolean> scopes = JsonUtils.parseObject(scope, Map.class); | ||||||
| @@ -114,8 +117,18 @@ public class OAuth2Controller { | |||||||
|         // 1.2 校验 redirectUri 重定向域名是否合法 + 校验 scope 是否在 Client 授权范围内 |         // 1.2 校验 redirectUri 重定向域名是否合法 + 校验 scope 是否在 Client 授权范围内 | ||||||
|         oauth2ClientService.validOAuthClientFromCache(clientId, grantTypeEnum.getGrantType(), scopes.keySet(), redirectUri); |         oauth2ClientService.validOAuthClientFromCache(clientId, grantTypeEnum.getGrantType(), scopes.keySet(), redirectUri); | ||||||
| 
 | 
 | ||||||
|         // 2.1 |         // 2.1 假设 approved 为 null,说明是场景一 | ||||||
|         // 2.2 |         if (Boolean.TRUE.equals(autoApprove)) { | ||||||
|  |             // 如果无法自动授权通过,则返回空 url,前端不进行跳转 | ||||||
|  |             if (!oauth2ApproveService.checkForPreApproval(getLoginUserId(), UserTypeEnum.ADMIN.getValue(), clientId, scopes.keySet())) { | ||||||
|  |                 return success(null); | ||||||
|  |             } | ||||||
|  |         } else { // 2.2 假设 approved 非 null,说明是场景二 | ||||||
|  |             // 如果计算后不通过,则跳转一个错误链接 | ||||||
|  |             if (!oauth2ApproveService.updateAfterApproval(getLoginUserId(), UserTypeEnum.ADMIN.getValue(), clientId, scopes)) { | ||||||
|  |                 return success("TODO"); | ||||||
|  |             } | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|         // 3.1 如果是 code 授权码模式,则发放 code 授权码,并重定向 |         // 3.1 如果是 code 授权码模式,则发放 code 授权码,并重定向 | ||||||
|         if (grantTypeEnum == OAuth2GrantTypeEnum.AUTHORIZATION_CODE) { |         if (grantTypeEnum == OAuth2GrantTypeEnum.AUTHORIZATION_CODE) { | ||||||
| @@ -1,14 +1,14 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth; | package cn.iocoder.yudao.module.system.controller.admin.oauth2; | ||||||
| 
 | 
 | ||||||
| import cn.iocoder.yudao.framework.common.pojo.CommonResult; | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.token.OAuth2AccessTokenPageReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.token.OAuth2AccessTokenRespVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenRespVO; | ||||||
| import cn.iocoder.yudao.module.system.convert.auth.OAuth2TokenConvert; | import cn.iocoder.yudao.module.system.convert.auth.OAuth2TokenConvert; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | ||||||
| import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; | import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; | ||||||
| import cn.iocoder.yudao.module.system.service.auth.AdminAuthService; | import cn.iocoder.yudao.module.system.service.auth.AdminAuthService; | ||||||
| import cn.iocoder.yudao.module.system.service.auth.OAuth2TokenService; | import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService; | ||||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||||
| import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.client; | package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client; | ||||||
| 
 | 
 | ||||||
| import cn.hutool.core.util.StrUtil; | import cn.hutool.core.util.StrUtil; | ||||||
| import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.client; | package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client; | ||||||
| 
 | 
 | ||||||
| import lombok.*; | import lombok.*; | ||||||
| import io.swagger.annotations.*; | import io.swagger.annotations.*; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.client; | package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client; | ||||||
| 
 | 
 | ||||||
| import lombok.*; | import lombok.*; | ||||||
| import io.swagger.annotations.*; | import io.swagger.annotations.*; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.client; | package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client; | ||||||
| 
 | 
 | ||||||
| import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||||
| import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.client; | package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client; | ||||||
| 
 | 
 | ||||||
| import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||||
| import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.token; | package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token; | ||||||
| 
 | 
 | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageParam; | import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||||
| import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.controller.admin.auth.vo.token; | package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token; | ||||||
| 
 | 
 | ||||||
| import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||||
| import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||||
| @@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | |||||||
| import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO; | import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO; | ||||||
| import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO; | import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO; | ||||||
| import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO; | import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.*; | import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; | import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; | import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; | ||||||
|   | |||||||
| @@ -1,9 +1,9 @@ | |||||||
| package cn.iocoder.yudao.module.system.convert.auth; | package cn.iocoder.yudao.module.system.convert.auth; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientCreateReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientCreateReqVO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientRespVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientRespVO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientUpdateReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientUpdateReqVO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; | ||||||
| import org.mapstruct.Mapper; | import org.mapstruct.Mapper; | ||||||
| import org.mapstruct.factory.Mappers; | import org.mapstruct.factory.Mappers; | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.convert.auth; | |||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenCheckRespDTO; | import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenCheckRespDTO; | ||||||
| import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenRespDTO; | import cn.iocoder.yudao.module.system.api.auth.dto.OAuth2AccessTokenRespDTO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.token.OAuth2AccessTokenRespVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenRespVO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | ||||||
| import org.mapstruct.Mapper; | import org.mapstruct.Mapper; | ||||||
| import org.mapstruct.factory.Mappers; | import org.mapstruct.factory.Mappers; | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.auth; | |||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||||||
| import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.token.OAuth2AccessTokenPageReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | ||||||
| import org.apache.ibatis.annotations.Mapper; | import org.apache.ibatis.annotations.Mapper; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.auth; | |||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||||||
| import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientPageReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; | ||||||
| import org.apache.ibatis.annotations.Mapper; | import org.apache.ibatis.annotations.Mapper; | ||||||
| import org.apache.ibatis.annotations.Select; | import org.apache.ibatis.annotations.Select; | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.mq.consumer.auth; | |||||||
|  |  | ||||||
| import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener; | import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener; | ||||||
| import cn.iocoder.yudao.module.system.mq.message.auth.OAuth2ClientRefreshMessage; | import cn.iocoder.yudao.module.system.mq.message.auth.OAuth2ClientRefreshMessage; | ||||||
| import cn.iocoder.yudao.module.system.service.auth.OAuth2ClientService; | import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ClientService; | ||||||
| import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||||
| import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| package cn.iocoder.yudao.module.system.service.auth; | package cn.iocoder.yudao.module.system.service.auth; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.*; | import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*; | ||||||
|  |  | ||||||
| import javax.validation.Valid; | import javax.validation.Valid; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; | |||||||
| import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils; | import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils; | ||||||
| import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; | import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; | ||||||
| import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; | import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.*; | import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*; | ||||||
| import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; | import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; | import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; | ||||||
| @@ -19,6 +19,7 @@ import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum; | |||||||
| import cn.iocoder.yudao.module.system.service.common.CaptchaService; | import cn.iocoder.yudao.module.system.service.common.CaptchaService; | ||||||
| import cn.iocoder.yudao.module.system.service.logger.LoginLogService; | import cn.iocoder.yudao.module.system.service.logger.LoginLogService; | ||||||
| import cn.iocoder.yudao.module.system.service.member.MemberService; | import cn.iocoder.yudao.module.system.service.member.MemberService; | ||||||
|  | import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService; | ||||||
| import cn.iocoder.yudao.module.system.service.social.SocialUserService; | import cn.iocoder.yudao.module.system.service.social.SocialUserService; | ||||||
| import cn.iocoder.yudao.module.system.service.user.AdminUserService; | import cn.iocoder.yudao.module.system.service.user.AdminUserService; | ||||||
| import com.google.common.annotations.VisibleForTesting; | import com.google.common.annotations.VisibleForTesting; | ||||||
|   | |||||||
| @@ -1,6 +1,7 @@ | |||||||
| package cn.iocoder.yudao.module.system.service.auth; | package cn.iocoder.yudao.module.system.service.oauth2; | ||||||
| 
 | 
 | ||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
|  | import java.util.Map; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * OAuth2 批准 Service 接口 |  * OAuth2 批准 Service 接口 | ||||||
| @@ -24,4 +25,15 @@ public interface OAuth2ApproveService { | |||||||
|      */ |      */ | ||||||
|     boolean checkForPreApproval(Long userId, Integer userType, String clientId, Collection<String> scopes); |     boolean checkForPreApproval(Long userId, Integer userType, String clientId, Collection<String> scopes); | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * 在用户发起批准时,基于 scopes 的选项,计算最终是否通过 | ||||||
|  |      * | ||||||
|  |      * @param userId 用户编号 | ||||||
|  |      * @param userType 用户类型 | ||||||
|  |      * @param clientId 客户端编号 | ||||||
|  |      * @param scopes 授权范围 | ||||||
|  |      * @return 是否授权通过 | ||||||
|  |      */ | ||||||
|  |     boolean updateAfterApproval(Long userId, Integer userType, String clientId, Map<String, Boolean> scopes); | ||||||
|  | 
 | ||||||
| } | } | ||||||
| @@ -1,8 +1,9 @@ | |||||||
| package cn.iocoder.yudao.module.system.service.auth; | package cn.iocoder.yudao.module.system.service.oauth2; | ||||||
| 
 | 
 | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
| 
 | 
 | ||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
|  | import java.util.Map; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * OAuth2 批准 Service 实现类 |  * OAuth2 批准 Service 实现类 | ||||||
| @@ -14,7 +15,12 @@ public class OAuth2ApproveServiceImpl implements OAuth2ApproveService { | |||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public boolean checkForPreApproval(Long userId, Integer userType, String clientId, Collection<String> scopes) { |     public boolean checkForPreApproval(Long userId, Integer userType, String clientId, Collection<String> scopes) { | ||||||
|         return false; |         return true; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean updateAfterApproval(Long userId, Integer userType, String clientId, Map<String, Boolean> scopes) { | ||||||
|  |         return true; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
| @@ -1,9 +1,9 @@ | |||||||
| package cn.iocoder.yudao.module.system.service.auth; | package cn.iocoder.yudao.module.system.service.oauth2; | ||||||
| 
 | 
 | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientCreateReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientCreateReqVO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientPageReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientUpdateReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientUpdateReqVO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; | ||||||
| 
 | 
 | ||||||
| import javax.validation.Valid; | import javax.validation.Valid; | ||||||
| @@ -1,13 +1,13 @@ | |||||||
| package cn.iocoder.yudao.module.system.service.auth; | package cn.iocoder.yudao.module.system.service.oauth2; | ||||||
| 
 | 
 | ||||||
| import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||||
| import cn.hutool.core.util.StrUtil; | import cn.hutool.core.util.StrUtil; | ||||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.common.util.string.StrUtils; | import cn.iocoder.yudao.framework.common.util.string.StrUtils; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientCreateReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientCreateReqVO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientPageReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientUpdateReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientUpdateReqVO; | ||||||
| import cn.iocoder.yudao.module.system.convert.auth.OAuth2ClientConvert; | import cn.iocoder.yudao.module.system.convert.auth.OAuth2ClientConvert; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; | ||||||
| import cn.iocoder.yudao.module.system.dal.mysql.auth.OAuth2ClientMapper; | import cn.iocoder.yudao.module.system.dal.mysql.auth.OAuth2ClientMapper; | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.service.auth; | package cn.iocoder.yudao.module.system.service.oauth2; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * OAuth2.0 授权码 Service 接口 |  * OAuth2.0 授权码 Service 接口 | ||||||
| @@ -1,11 +1,13 @@ | |||||||
| package cn.iocoder.yudao.module.system.service.auth; | package cn.iocoder.yudao.module.system.service.oauth2; | ||||||
| 
 | 
 | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | ||||||
| 
 | 
 | ||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * 管理后台的 OAuth2 Service 接口 |  * OAuth2 授予 Service 接口 | ||||||
|  |  * | ||||||
|  |  * 从功能上,和 Spring Security OAuth 的 TokenGranter 的功能,提供访问令牌、刷新令牌的操作 | ||||||
|  * |  * | ||||||
|  * 将自身的 AdminUser 用户,授权给第三方应用,采用 OAuth2.0 的协议。 |  * 将自身的 AdminUser 用户,授权给第三方应用,采用 OAuth2.0 的协议。 | ||||||
|  * |  * | ||||||
| @@ -14,7 +16,7 @@ import java.util.Collection; | |||||||
|  * |  * | ||||||
|  * @author 芋道源码 |  * @author 芋道源码 | ||||||
|  */ |  */ | ||||||
| public interface AdminOAuth2Service { | public interface OAuth2GrantService { | ||||||
| 
 | 
 | ||||||
|     // ImplicitTokenGranter |     // ImplicitTokenGranter | ||||||
|     OAuth2AccessTokenDO grantImplicit(Long userId, Integer userType, |     OAuth2AccessTokenDO grantImplicit(Long userId, Integer userType, | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | package cn.iocoder.yudao.module.system.service.oauth2; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | ||||||
|  | import org.springframework.stereotype.Service; | ||||||
|  |  | ||||||
|  | import java.util.Collection; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * OAuth2 授予 Service 实现类 | ||||||
|  |  * | ||||||
|  |  * @author 芋道源码 | ||||||
|  |  */ | ||||||
|  | @Service | ||||||
|  | public class OAuth2GrantServiceImpl implements OAuth2GrantService { | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public OAuth2AccessTokenDO grantImplicit(Long userId, Integer userType, | ||||||
|  |                                              String clientId, Collection<String> scopes) { | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public String grantAuthorizationCode(Long userId, Integer userType, | ||||||
|  |                                          String clientId, Collection<String> scopes, | ||||||
|  |                                          String redirectUri, String state) { | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| package cn.iocoder.yudao.module.system.service.auth; | package cn.iocoder.yudao.module.system.service.oauth2; | ||||||
| 
 | 
 | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.token.OAuth2AccessTokenPageReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package cn.iocoder.yudao.module.system.service.auth; | package cn.iocoder.yudao.module.system.service.oauth2; | ||||||
| 
 | 
 | ||||||
| import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||||
| import cn.hutool.core.util.IdUtil; | import cn.hutool.core.util.IdUtil; | ||||||
| @@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstant | |||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.common.util.date.DateUtils; | import cn.iocoder.yudao.framework.common.util.date.DateUtils; | ||||||
| import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; | import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.token.OAuth2AccessTokenPageReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2RefreshTokenDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2RefreshTokenDO; | ||||||
| @@ -5,8 +5,8 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; | |||||||
| import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; | import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; | ||||||
| import cn.iocoder.yudao.framework.test.core.util.AssertUtils; | import cn.iocoder.yudao.framework.test.core.util.AssertUtils; | ||||||
| import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; | import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthLoginReqVO; | import cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthLoginReqVO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthLoginRespVO; | import cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthLoginRespVO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2AccessTokenDO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; | import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; | ||||||
| import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; | import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; | ||||||
| @@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; | |||||||
| import cn.iocoder.yudao.module.system.service.common.CaptchaService; | import cn.iocoder.yudao.module.system.service.common.CaptchaService; | ||||||
| import cn.iocoder.yudao.module.system.service.logger.LoginLogService; | import cn.iocoder.yudao.module.system.service.logger.LoginLogService; | ||||||
| import cn.iocoder.yudao.module.system.service.member.MemberService; | import cn.iocoder.yudao.module.system.service.member.MemberService; | ||||||
|  | import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService; | ||||||
| import cn.iocoder.yudao.module.system.service.social.SocialUserService; | import cn.iocoder.yudao.module.system.service.social.SocialUserService; | ||||||
| import cn.iocoder.yudao.module.system.service.user.AdminUserService; | import cn.iocoder.yudao.module.system.service.user.AdminUserService; | ||||||
| import org.junit.jupiter.api.BeforeEach; | import org.junit.jupiter.api.BeforeEach; | ||||||
|   | |||||||
| @@ -3,12 +3,13 @@ package cn.iocoder.yudao.module.system.service.auth; | |||||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; | import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientCreateReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientCreateReqVO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientPageReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO; | ||||||
| import cn.iocoder.yudao.module.system.controller.admin.auth.vo.client.OAuth2ClientUpdateReqVO; | import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientUpdateReqVO; | ||||||
| import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; | import cn.iocoder.yudao.module.system.dal.dataobject.auth.OAuth2ClientDO; | ||||||
| import cn.iocoder.yudao.module.system.dal.mysql.auth.OAuth2ClientMapper; | import cn.iocoder.yudao.module.system.dal.mysql.auth.OAuth2ClientMapper; | ||||||
| import cn.iocoder.yudao.module.system.mq.producer.auth.OAuth2ClientProducer; | import cn.iocoder.yudao.module.system.mq.producer.auth.OAuth2ClientProducer; | ||||||
|  | import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ClientServiceImpl; | ||||||
| import org.junit.jupiter.api.Disabled; | import org.junit.jupiter.api.Disabled; | ||||||
| import org.junit.jupiter.api.Test; | import org.junit.jupiter.api.Test; | ||||||
| import org.springframework.boot.test.mock.mockito.MockBean; | import org.springframework.boot.test.mock.mockito.MockBean; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV