# sodo-platform **Repository Path**: irvingsoft-sodo/sodo-platform ## Basic Information - **Project Name**: sodo-platform - **Description**: SODO 微服务平台 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2021-08-13 - **Last Updated**: 2021-10-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # sodo-platform **IBAC(Interface-Based Access Control,基于接口的权限控制)微服务快速开发平台。** **系统后台前端仓库:** https://gitee.com/irvingsoft-sodo/sodo-housekeeper-view-web.git **体验地址:** https://housekeeper.sodo.cool **用户名:** admin **密码:** 111111 由于原仓库错误的合并操作,故清空后重新提交了代码。 原仓库概况图 ## 平台架构 平台架构图 sodo-platform ├─doc // 文档 ├─sodo-auth // 统一认证服务 ├─sodo-catkin // 分布式 ID 服务(整合自 TinyId) ├─sodo-common // 公共总包 │ ├─sodo-catkin-starter // 分布式 ID 客户端 │ ├─sodo-common-base // 公共基础包 │ ├─sodo-common-core // 公共核心包 │ ├─sodo-common-starter // 公共客户端 │ ├─sodo-knife4j-starter // Swagger2 接口文档客户端 │ ├─sodo-log-starter // 分布式日志客户端 │ ├─sodo-mybatis-starter // Mybatis-plus 客户端 │ ├─sodo-openfeign-starter // Openfeign 客户端 │ ├─sodo-rabbitmq-starter // RabbitMq 客户端 │ └─sodo-redis-starter // Redis 客户端 ├─sodo-eureka // 注册中心服务 ├─sodo-goods // 业务模块-商品服务(待开发) ├─sodo-housekeeper // 管家服务 ├─sodo-log // 日志服务 ├─sodo-order // 业务模块-订单服务(待开发) ├─sodo-payment // 业务模块-支付服务(待开发) ├─sodo-user // 用户服务 └─sodo-zuul // 路由网关服务 ## 基于接口的权限控制(IBAC) 基于接口的权限控制从两个方面进行权限控制: 1. 控制接口所属客户端,没有加入接口对应的客户端列表的客户端无法请求该接口。 2. 在基于角色的权限控制基础上,将权限细化到每个接口。当请求的接口存在权限标识时,查询用户对应角色拥有的权限,并进行权限匹配。 IBAC 架构图 ## 启动流程 ``` 1. 使用 MySQL 新建数据库 sodo_platform 2. 运行 doc/sodo_platform.sql 脚本 3. 安装 Redis 4. 安装 RabbitMq 5. 更换每个服务中的 src/main/resources/application-dev.yml 中的数据库连接为本地 MySQL 的用户名和密码 6. 更换每个服务中的 src/main/resources/application-dev.yml 中的 RabbitMq 连接为本地 RabbitMq 的用户名和密码,默认为 guest/guest 7. 在 Idea 服务配置中添加启动参数 dev 8. 启动各个服务 ``` Idea 配置启动参数 Idea Maven 配置 ## 应用管理 应用管理 应用管理-编辑 ## 多客户端用户管理 用户管理 用户管理-编辑 用户管理-授权 用户管理-踢人下线 ## 多客户端角色管理 角色管理 角色管理-授权 ## 多客户端菜单管理 菜单管理 菜单管理-编辑 ## 接口管理 接口管理 接口管理-编辑 接口管理-限流 ## 多客户端 IP 管理 IP 管理 ## 分布式日志 日志-业务 日志-接口 日志-错误 ## 接口编写规范 * 推荐使用 URL 传参 * RESTFul 接口约定 `Method`(资源操作行为,改变资源的状态)。 `GET` :请求服务器特定资源。 `POST` :服务器创建一个新资源。 `PUT` :更新服务器资源客(整个资源)。 `DELETE` :服务器删除特定资源。 `PATCH` :更新服务器上的资源(资源的部分)。 ## Swagger2 接口文档地址 127.0.0.1:9511/doc.html