无状态REST WEB原型项目
- 使用
Spring Boot 2
- 使用
RBAC
权限系统设计 - 使用
JWT
做无状态权限系统认证 - 因为现有的主流安全框架为支持有状态服务,比较复杂且重,故没有使用框架,但对整个权限认证流程做了抽象,方便维护与扩展
- 支持配置文件配置
CORS
跨域 - 已配置全局异常处理。建议在处理请求有异常时抛出
HttpException
,这样会响应异常HTTP状态码,而不是无论什么情况都以200状态码响应Msg对象 - 使用
MyBatis
作为ORM框架
- 1 用户访问系统
- 2 系统判断请求是否被权限系统跟踪?
- 2.1 被跟踪: 进入认证阶段; 创建
认证信息/Authentication
(至少包含凭证) - 2.2
认证器/Authenticator
对认证信息
进行认证/authenticate
,产生新的(完整的)认证信息
?- 2.2.1 认证通过: 将
认证信息
添加到权限上下文/AuthContext
中 - 2.2.2 进入访问控制(授权)阶段;
访问控制拦截器/AccessInterceptor
对访问拦截 - 2.2.3 访问
控制拦截器
执行前置处理/beforeAccess
,判断是否有权访问?- 2.2.3.1 有权访问: 执行访问
- 2.2.3.2 无权访问: 返回无权访问异常
- 2.2.4
访问控制器
执行后置处理/afterAccess
- 2.2.5 认证不通过: 返回未通过认证异常
- 2.2.1 认证通过: 将
- 2.3 不被跟踪: 执行访问
- 2.1 被跟踪: 进入认证阶段; 创建
- 3 清理
权限上下文
- 集成
Swagger2
作为API文档生成框架 - 使用缓存提升应用性能