2023-12-28|今天做了什么
今天做了什么:
重构微服务项目中使用 spring-security-oauth2 搭建 OAuth2 认证服务和资源服务的代码,减少其他模块对此的耦合度。计划将 spring-security-oauth2 迁移到 spring-security-oauth2-authorization-server 上,即使用 OAuth2.1 授权和认证。Spring Authorization Server 相关文档,可以参考 https://blog.51cto.com/u_15268610/category2。
看 xuxiaowei-cloud master 分支源代码,整理 /login 登陆逻辑,参数:username、password、tenantId、clientId
登陆成功
- 记录登陆日志
- 转向 /login/success
- 获取客户端信息,将授权地址、校验 token 地址返回给前端
- 前端重定向到授权页面
- 授权同意,则重定向到客户端表中配置的重定向地址 /oauth2/code/{id},并通过 code 去获取 token,最后再重定向到用户指定的回调地址
重新梳理用户中心领域模型。
领域模型:
客户端,对应 OAuth 中的客户端的概念。
应用
租户
用户
角色
资源
区域
门店
领域模型之间的关系说明:
- 客户端和应用多对的的关系,应用和租户是多对多的关系,租户和资源是多对多的关系,应用和资源一对多的关系。为了简化操作,可以创建一个中间表保存客户端、应用、租户、资源之间的关系。
- 资源、用户、角色是 RBAC 模型。角色和应用是多对一的关系,租户和角色是一对多的关系,即角色是隶属于应用和租户。不太应用的不同租户下的角色不一样。
- 租户和区域是一对多的关系,区域和门店是一对多的关系,门店和应用是多对多的关系。
- 用户和租户是多对多的关系。
流程:
- 登陆:使用用户名、密码、客户端 ID、租户 ID(首次登陆时为空,取用户有权限的租户中的第一个) 登陆。通过 客户端 ID、租户 ID 、用户名查询该用户的权限。
- 登陆之后,再选择租户进入首页。
- 创建客户端之后,可以绑定应用。
- 创建租户时,可以通过资源树(客户端+应用+资源)开通资源,可以给租户开通的应用开通门店。
Related content
- 2023-12-27|今天做了什么
- 2023-12-22|今天做了什么
- 2023-12-21|Spring Security对OAuth2的支持及实现方式
- 2023-12-20|Maven配置继承和生命周期、源码运行Nacos 2.3.0控制台
- 2023-12-19|Spring Security OAuth2配置JWT、Github Actions配置代码扫描
- 2023-12-18|使用Spring Security实现OAuth2授权和认证
- 2023-12-15|JNDI InitialContext源码分析、ClassLoader加载机制
- 2023-12-14|购买新的VPS服务器、最近在做什么
- 2023-12-13|发布到Maven中央仓库的第一个项目
- 2023-12-12|RMI、Java漏洞安全、Semgrep漏洞检测