houzhongjian
2024-10-16 7da8f196dee8e3c526c009a4bc7f5983ece6bb97
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.system.dal.dataobject.oauth2;
H 2
3 import com.iailab.framework.common.enums.CommonStatusEnum;
4 import com.iailab.framework.mybatis.core.dataobject.BaseDO;
5 import com.iailab.module.system.enums.oauth2.OAuth2GrantTypeEnum;
6 import com.baomidou.mybatisplus.annotation.KeySequence;
7 import com.baomidou.mybatisplus.annotation.TableField;
8 import com.baomidou.mybatisplus.annotation.TableId;
9 import com.baomidou.mybatisplus.annotation.TableName;
10 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
11 import lombok.Data;
12 import lombok.EqualsAndHashCode;
13
14 import java.util.List;
15
16 /**
17  * OAuth2 客户端 DO
18  *
19  * @author iailab
20  */
21 @TableName(value = "system_oauth2_client", autoResultMap = true)
22 @KeySequence("system_oauth2_client_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
23 @Data
24 @EqualsAndHashCode(callSuper = true)
25 public class OAuth2ClientDO extends BaseDO {
26
27     /**
28      * 编号,数据库自增
29      *
30      * 由于 SQL Server 在存储 String 主键有点问题,所以暂时使用 Long 类型
31      */
32     @TableId
33     private Long id;
34     /**
35      * 客户端编号
36      */
37     private String clientId;
38     /**
39      * 客户端密钥
40      */
41     private String secret;
42     /**
43      * 应用名
44      */
45     private String name;
46     /**
47      * 应用图标
48      */
49     private String logo;
50     /**
51      * 应用描述
52      */
53     private String description;
54     /**
55      * 状态
56      *
57      * 枚举 {@link CommonStatusEnum}
58      */
59     private Integer status;
60     /**
61      * 访问令牌的有效期
62      */
63     private Integer accessTokenValiditySeconds;
64     /**
65      * 刷新令牌的有效期
66      */
67     private Integer refreshTokenValiditySeconds;
68     /**
69      * 可重定向的 URI 地址
70      */
71     @TableField(typeHandler = JacksonTypeHandler.class)
72     private List<String> redirectUris;
73     /**
74      * 授权类型(模式)
75      *
76      * 枚举 {@link OAuth2GrantTypeEnum}
77      */
78     @TableField(typeHandler = JacksonTypeHandler.class)
79     private List<String> authorizedGrantTypes;
80     /**
81      * 授权范围
82      */
83     @TableField(typeHandler = JacksonTypeHandler.class)
84     private List<String> scopes;
85     /**
86      * 自动授权的 Scope
87      *
88      * code 授权时,如果 scope 在这个范围内,则自动通过
89      */
90     @TableField(typeHandler = JacksonTypeHandler.class)
91     private List<String> autoApproveScopes;
92     /**
93      * 权限
94      */
95     @TableField(typeHandler = JacksonTypeHandler.class)
96     private List<String> authorities;
97     /**
98      * 资源
99      */
100     @TableField(typeHandler = JacksonTypeHandler.class)
101     private List<String> resourceIds;
102     /**
103      * 附加信息,JSON 格式
104      */
105     private String additionalInformation;
106
107 }