Appearance
后端
适用对象
给后端开发、接口联调、数据库迁移和 AI 生成后排查使用。
关键约定(摘要)
- 服务 context path 是
/oars,例如登录接口实际是/oars/app/auth/login。 - 认证基于 JWT:
AuthInterceptor写入UserContext;PermissionInterceptor校验 RBAC。拦截器顺序为限流 → 认证 → 演示模式 → 权限。 - 需要当前人时从
UserContext取,不信任前端传入的 userId;JWT 不含 tenantId。 - 登出
POST /app/auth/logout需在 Header 带 Bearer Token 才能拉黑;刷新 Token 用POST /app/auth/refresh(JSONrefreshToken)。 - 登录日志:
GET /oars/app/login-log/page(管理)、/my(本人)。 - 权限由
PermissionInterceptor和@RequiresPermission参与校验;四层模型见 monorepodocs/permission-model.md。 - 限流:单机内存 IP 滑动窗口,默认每秒 100 请求;网关后须转发
X-Forwarded-For/X-Real-IP(详见oars-java/RATE-LIMIT-CONFIG.md)。 - 新增迁移放到
oars-migration,不要把 Flyway SQL 散放到业务模块(oars-java/oars-migration/README.md)。
L2 详细说明(monorepo)
| 主题 | 文档 |
|---|---|
| JWT / 登录 / 黑名单 / 登录日志 | oars-java/AUTH-GUIDE.md |
| 限流 | oars-java/RATE-LIMIT-CONFIG.md |
| 多环境配置 | oars-java/CONFIG.md |
| Flyway | oars-java/oars-migration/README.md |
| 权限现行模型 | docs/permission-model.md |
| 权限平台摘要 | ARCHITECTURE-ROADMAP.md §五 |
| 文件存储 | oars-java/FILE-STORAGE-GUIDE.md |
| 站内消息 / IM | oars-java/MESSAGE-MODULE-DESIGN.md |
| 产品:消息 / IM | 消息中心、即时通讯 |
实现位置
- Web 拦截器注册:
oars-java/oars-app/src/main/java/com/oars/app/config/WebMvcConfig.java - 认证拦截:
oars-java/oars-app/src/main/java/com/oars/app/config/AuthInterceptor.java - 权限拦截:
oars-java/oars-app/src/main/java/com/oars/app/config/PermissionInterceptor.java - 限流拦截:
oars-java/oars-app/src/main/java/com/oars/app/config/RateLimitInterceptor.java - 当前用户:
oars-java/oars-app/src/main/java/com/oars/app/context/UserContext.java
运维约定(摘要)
- 生产 JWT 密钥、HTTPS、Token 存储策略按部署环境配置。
- Redis 不可用时 Token 黑名单 fail-open(应用仍可运行,已登出 Token 可能仍有效直至过期);见
oars-java/AUTH-GUIDE.md§Token 黑名单。
