Skip to content

Commit eacab68

Browse files
authored
Merge pull request #169 from TTonlyV5/master
单点登录服务(一次性 Ticket 授权码方案)
2 parents 07d5fa5 + 761fa04 commit eacab68

24 files changed

Lines changed: 854 additions & 12 deletions
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using ZhonTai.Admin.Core.Repositories;
2+
3+
namespace ZhonTai.Admin.Contracts.Domain.Sso;
4+
5+
/// <summary>
6+
/// 单点登录应用仓储接口
7+
/// </summary>
8+
public interface ISsoAppManageRepository : IRepositoryBase<SsoAppManageEntity>
9+
{
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using ZhonTai.Admin.Core.Repositories;
2+
3+
namespace ZhonTai.Admin.Contracts.Domain.Sso;
4+
5+
/// <summary>
6+
/// 单点登录日志仓储接口
7+
/// </summary>
8+
public interface ISsoLogRepository : IRepositoryBase<SsoLogEntity>
9+
{
10+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
using FreeSql.DataAnnotations;
2+
using ZhonTai.Admin.Core.Entities;
3+
4+
namespace ZhonTai.Admin.Contracts.Domain.Sso;
5+
6+
/// <summary>
7+
/// 单点登录第三方应用配置
8+
/// </summary>
9+
[Table(Name = "ad_sso_app")]
10+
[Index("idx_{tablename}_01", nameof(AppId), true)]
11+
public partial class SsoAppManageEntity : EntityBase
12+
{
13+
/// <summary>
14+
/// 应用Id
15+
/// </summary>
16+
[Column(StringLength = 64)]
17+
public string AppId { get; set; }
18+
19+
/// <summary>
20+
/// 应用名称
21+
/// </summary>
22+
[Column(StringLength = 128)]
23+
public string AppName { get; set; }
24+
25+
/// <summary>
26+
/// 应用密钥(服务端对服务端签名校验使用)
27+
/// </summary>
28+
[Column(StringLength = 128)]
29+
public string AppSecret { get; set; }
30+
31+
/// <summary>
32+
/// 回调地址(配置时建议包含占位符 ?ticket={ticket}&amp;app_id={appId},由前端替换为实际值)
33+
/// </summary>
34+
[Column(StringLength = 512)]
35+
public string CallbackUrl { get; set; }
36+
37+
/// <summary>
38+
/// 排序(升序,越小越靠前)
39+
/// </summary>
40+
public int Sort { get; set; }
41+
42+
/// <summary>
43+
/// 图标(前端按钮展示用,如 el-icon 名称,可空)
44+
/// </summary>
45+
[Column(StringLength = 64)]
46+
public string Icon { get; set; }
47+
48+
/// <summary>
49+
/// 状态:1启用 0禁用
50+
/// </summary>
51+
public int Status { get; set; } = 1;
52+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
using FreeSql.DataAnnotations;
2+
using ZhonTai.Admin.Core.Entities;
3+
4+
namespace ZhonTai.Admin.Contracts.Domain.Sso;
5+
6+
/// <summary>
7+
/// 单点登录审计日志
8+
/// </summary>
9+
[Table(Name = "ad_sso_log")]
10+
public partial class SsoLogEntity : EntityAdd
11+
{
12+
/// <summary>
13+
/// 用户Id
14+
/// </summary>
15+
public long UserId { get; set; }
16+
17+
/// <summary>
18+
/// 用户名
19+
/// </summary>
20+
[Column(StringLength = 50)]
21+
public string UserName { get; set; }
22+
23+
/// <summary>
24+
/// 姓名
25+
/// </summary>
26+
[Column(StringLength = 50)]
27+
public string Name { get; set; }
28+
29+
/// <summary>
30+
/// 租户Id
31+
/// </summary>
32+
public long? TenantId { get; set; }
33+
34+
/// <summary>
35+
/// 应用Id
36+
/// </summary>
37+
[Column(StringLength = 64)]
38+
public string AppId { get; set; }
39+
40+
/// <summary>
41+
/// 票据
42+
/// </summary>
43+
[Column(StringLength = 64)]
44+
public string Ticket { get; set; }
45+
46+
/// <summary>
47+
/// 客户端IP
48+
/// </summary>
49+
[Column(StringLength = 50)]
50+
public string Ip { get; set; }
51+
52+
/// <summary>
53+
/// 状态:success / fail
54+
/// </summary>
55+
[Column(StringLength = 20)]
56+
public string Status { get; set; }
57+
58+
/// <summary>
59+
/// 描述
60+
/// </summary>
61+
[Column(StringLength = 512)]
62+
public string Message { get; set; }
63+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using System.ComponentModel.DataAnnotations;
2+
3+
namespace ZhonTai.Admin.Contracts.Services.Sso.Dto;
4+
5+
/// <summary>
6+
/// 新增应用输入(密钥由系统自动生成)
7+
/// </summary>
8+
public class SsoAppManageAddInput
9+
{
10+
/// <summary>
11+
/// 应用Id
12+
/// </summary>
13+
[Required(ErrorMessage = "应用Id不能为空")]
14+
public string AppId { get; set; }
15+
16+
/// <summary>
17+
/// 应用名称
18+
/// </summary>
19+
public string AppName { get; set; }
20+
21+
/// <summary>
22+
/// 回调地址
23+
/// </summary>
24+
public string CallbackUrl { get; set; }
25+
26+
/// <summary>
27+
/// 状态:1启用 0禁用
28+
/// </summary>
29+
public int Status { get; set; } = 1;
30+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
namespace ZhonTai.Admin.Contracts.Services.Sso.Dto;
2+
3+
/// <summary>
4+
/// 单点登录按钮应用输出(脱敏,供前端渲染按钮,不含密钥)
5+
/// </summary>
6+
public class SsoAppManageButtonOutput
7+
{
8+
/// <summary>
9+
/// 应用Id
10+
/// </summary>
11+
public string AppId { get; set; }
12+
13+
/// <summary>
14+
/// 应用名称
15+
/// </summary>
16+
public string AppName { get; set; }
17+
18+
/// <summary>
19+
/// 图标(前端按钮展示用)
20+
/// </summary>
21+
public string Icon { get; set; }
22+
23+
/// <summary>
24+
/// 排序(升序)
25+
/// </summary>
26+
public int Sort { get; set; }
27+
28+
/// <summary>
29+
/// 回调地址(含 {ticket}/{appId} 占位符)
30+
/// </summary>
31+
public string CallbackUrl { get; set; }
32+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace ZhonTai.Admin.Contracts.Services.Sso.Dto;
2+
3+
public partial class SsoAppManageGetListInput
4+
{
5+
/// <summary>
6+
/// 应用名称
7+
/// </summary>
8+
public string Name { get; set; }
9+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
namespace ZhonTai.Admin.Contracts.Services.Sso.Dto;
2+
3+
/// <summary>
4+
/// 应用列表输出
5+
/// </summary>
6+
public class SsoAppManageGetListOutput
7+
{
8+
/// <summary>
9+
/// 主键Id
10+
/// </summary>
11+
public long Id { get; set; }
12+
13+
/// <summary>
14+
/// 应用Id
15+
/// </summary>
16+
public string AppId { get; set; }
17+
18+
/// <summary>
19+
/// 应用名称
20+
/// </summary>
21+
public string AppName { get; set; }
22+
23+
/// <summary>
24+
/// 回调地址
25+
/// </summary>
26+
public string CallbackUrl { get; set; }
27+
28+
/// <summary>
29+
/// 状态:1启用 0禁用
30+
/// </summary>
31+
public int Status { get; set; }
32+
33+
/// <summary>
34+
/// 创建时间
35+
/// </summary>
36+
public DateTime? CreatedTime { get; set; }
37+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
namespace ZhonTai.Admin.Contracts.Services.Sso.Dto;
2+
3+
/// <summary>
4+
/// 应用详情输出
5+
/// </summary>
6+
public class SsoAppManageGetOutput : SsoAppManageGetListOutput
7+
{
8+
/// <summary>
9+
/// 应用密钥(仅详情返回,列表不返回)
10+
/// </summary>
11+
public string AppSecret { get; set; }
12+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using System.ComponentModel.DataAnnotations;
2+
3+
namespace ZhonTai.Admin.Contracts.Services.Sso.Dto;
4+
5+
/// <summary>
6+
/// 修改应用输入
7+
/// </summary>
8+
public class SsoAppManageUpdateInput
9+
{
10+
/// <summary>
11+
/// 主键Id
12+
/// </summary>
13+
[Required]
14+
public long Id { get; set; }
15+
16+
/// <summary>
17+
/// 应用名称
18+
/// </summary>
19+
public string AppName { get; set; }
20+
21+
/// <summary>
22+
/// 回调地址
23+
/// </summary>
24+
public string CallbackUrl { get; set; }
25+
26+
/// <summary>
27+
/// 状态:1启用 0禁用
28+
/// </summary>
29+
public int Status { get; set; } = 1;
30+
}

0 commit comments

Comments
 (0)