houzhongjian
2024-09-14 818a0170d8f2950d52cc7300a302356bbc523236
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.system.service.oauth2;
H 2
3 import com.iailab.framework.common.pojo.PageResult;
4 import com.iailab.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO;
5 import com.iailab.module.system.controller.admin.oauth2.vo.client.OAuth2ClientSaveReqVO;
6 import com.iailab.module.system.dal.dataobject.oauth2.OAuth2ClientDO;
7
8 import javax.validation.Valid;
9 import java.util.Collection;
10
11 /**
12  * OAuth2.0 Client Service 接口
13  *
14  * 从功能上,和 JdbcClientDetailsService 的功能,提供客户端的操作
15  *
16  * @author iailab
17  */
18 public interface OAuth2ClientService {
19
20     /**
21      * 创建 OAuth2 客户端
22      *
23      * @param createReqVO 创建信息
24      * @return 编号
25      */
26     Long createOAuth2Client(@Valid OAuth2ClientSaveReqVO createReqVO);
27
28     /**
29      * 更新 OAuth2 客户端
30      *
31      * @param updateReqVO 更新信息
32      */
33     void updateOAuth2Client(@Valid OAuth2ClientSaveReqVO updateReqVO);
34
35     /**
36      * 删除 OAuth2 客户端
37      *
38      * @param id 编号
39      */
40     void deleteOAuth2Client(Long id);
41
42     /**
43      * 获得 OAuth2 客户端
44      *
45      * @param id 编号
46      * @return OAuth2 客户端
47      */
48     OAuth2ClientDO getOAuth2Client(Long id);
49
50     /**
51      * 获得 OAuth2 客户端,从缓存中
52      *
53      * @param clientId 客户端编号
54      * @return OAuth2 客户端
55      */
56     OAuth2ClientDO getOAuth2ClientFromCache(String clientId);
57
58     /**
59      * 获得 OAuth2 客户端分页
60      *
61      * @param pageReqVO 分页查询
62      * @return OAuth2 客户端分页
63      */
64     PageResult<OAuth2ClientDO> getOAuth2ClientPage(OAuth2ClientPageReqVO pageReqVO);
65
66     /**
67      * 从缓存中,校验客户端是否合法
68      *
69      * @return 客户端
70      */
71     default OAuth2ClientDO validOAuthClientFromCache(String clientId) {
72         return validOAuthClientFromCache(clientId, null, null, null, null);
73     }
74
75     /**
76      * 从缓存中,校验客户端是否合法
77      *
78      * 非空时,进行校验
79      *
80      * @param clientId 客户端编号
81      * @param clientSecret 客户端密钥
82      * @param authorizedGrantType 授权方式
83      * @param scopes 授权范围
84      * @param redirectUri 重定向地址
85      * @return 客户端
86      */
87     OAuth2ClientDO validOAuthClientFromCache(String clientId, String clientSecret, String authorizedGrantType,
88                                              Collection<String> scopes, String redirectUri);
89
90 }