houzhongjian
2024-10-16 7da8f196dee8e3c526c009a4bc7f5983ece6bb97
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.system.service.oauth2;
H 2
3 import com.iailab.module.system.dal.dataobject.oauth2.OAuth2ApproveDO;
4
5 import java.util.Collection;
6 import java.util.List;
7 import java.util.Map;
8
9 /**
10  * OAuth2 批准 Service 接口
11  *
12  * 从功能上,和 Spring Security OAuth 的 ApprovalStoreUserApprovalHandler 的功能,记录用户针对指定客户端的授权,减少手动确定。
13  *
14  * @author iailab
15  */
16 public interface OAuth2ApproveService {
17
18     /**
19      * 获得指定用户,针对指定客户端的指定授权,是否通过
20      *
21      * 参考 ApprovalStoreUserApprovalHandler 的 checkForPreApproval 方法
22      *
23      * @param userId 用户编号
24      * @param userType 用户类型
25      * @param clientId 客户端编号
26      * @param requestedScopes 授权范围
27      * @return 是否授权通过
28      */
29     boolean checkForPreApproval(Long userId, Integer userType, String clientId, Collection<String> requestedScopes);
30
31     /**
32      * 在用户发起批准时,基于 scopes 的选项,计算最终是否通过
33      *
34      * @param userId 用户编号
35      * @param userType 用户类型
36      * @param clientId 客户端编号
37      * @param requestedScopes 授权范围
38      * @return 是否授权通过
39      */
40     boolean updateAfterApproval(Long userId, Integer userType, String clientId, Map<String, Boolean> requestedScopes);
41
42     /**
43      * 获得用户的批准列表,排除已过期的
44      *
45      * @param userId 用户编号
46      * @param userType 用户类型
47      * @param clientId 客户端编号
48      * @return 是否授权通过
49      */
50     List<OAuth2ApproveDO> getApproveList(Long userId, Integer userType, String clientId);
51
52 }