本项目有两个分支,单体系统和基于Spring Cloud的(准)分布式微服务系统。两者使用不同的架构设计,提供相同的功能和接口。
项目采用前后端分离设计,使用JSON在前后端间传输数据。目前实现了大部分的后端功能,前端部分待开发。
本项目的核心功能:
- 登录及权限认证:基于Spring Security和JWT的权限认证系统;
- 用户管理:用户的增删改查操作,导出用户信息为excel;
- 权限管理:设置用户的权限组(角色);
- 机构管理:设置用户所在机构,支持多层机构的嵌套;
- 菜单管理:根据登录用户的权限,提供不同的前端菜单;
- 日志管理:查询用户的登录/操作日志并记录(待完成);
单体式权限管理系统,使用SpringBoot + MyBatis构建,开发基本完成。
项目已部署(仅后端),接口说明及测试(基于swagger): http://121.43.135.121:9000/swagger-ui.html
由ams-system重构的分布式微服务系统。使用Consul作为注册中心,Zuul作为网关,Spring-Boot-Admin作为服务监控,使用Feign实现RPC,将服务拆分到多个子项目中。
Zuul网关与Spring Security配合,进行请求转发与权限认证;网关验证请求携带的token的有效性,从加密的token中提取用户信息(身份、权限等),添加到请求头中并转发;后续的微服务通过请求头中的用户信息提供相应的服务。
仍在开发中,Zuul与Spring Security的整合尚未完成。