user-center 是 ArchAIHarness 多租户 SaaS 内核的用户中心,负责用户、账号、访问密钥、角色与用户侧租户权限视图。
它不承载具体业务规则,只提供身份主数据、访问凭据和租户权限查询能力。
| 能力 | 说明 |
|---|---|
| 用户管理 | 维护用户主体、档案和状态 |
| 账号管理 | 支持多账号体系与登录策略 |
| AccessKey | 生成、校验和管理 AK/SK |
| 角色视图 | 维护用户侧租户角色与权限视图 |
| 事件同步 | 消费 tenant-center 事件并同步租户成员关系 |
| PBAC | 提供策略化访问控制基础能力 |
user-center/
├── common/ # 共享内核,纯 Java 基础类型
├── domain/ # 用户领域模型,无 Spring 依赖
├── application/ # 用户用例编排
├── infrastructure/ # JPA / Redis / Kafka / PBAC 等技术实现
├── interfaces/ # Controller / Filter / OpenAPI
└── bootstrap/ # 启动入口与装配
当前实现包名为 top.cloudlab.user。作为公开模板复用时,可按组织命名规范迁移包名。
sequenceDiagram
participant Gateway as gateway
participant User as user-center
Gateway->>User: POST /access/validate
User->>User: verify access id and secret
User-->>Gateway: user identity and tenant roles
sequenceDiagram
participant Tenant as tenant-center
participant Kafka as Kafka
participant User as user-center
Tenant->>Kafka: publish tenant_user_event_topic
Kafka->>User: consume tenant user event
User->>User: upsert tenant role view
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /user/detail |
获取用户信息 |
| POST | /api/account/login |
账号登录 |
| POST | /api/account |
创建账号 |
| POST | /api/account/bind |
绑定账号 |
| POST | /api/access-key |
创建 AK/SK |
| GET | /api/access-key |
查询访问密钥 |
| DELETE | /api/access-key/{id} |
删除访问密钥 |
| POST | /access/validate |
校验 AK/SK |
| GET | /access/access_secret |
查询访问密钥信息 |
| GET | /tenant/role |
查询用户租户角色视图 |
| Header | 说明 |
|---|---|
x-user-id |
当前访问用户 ID |
x-tenant-id |
当前租户 ID |
x-tenant-ids |
用户可访问租户 ID 集合 |
x-tenant-permissions |
租户权限集合 |
x-trace-id |
链路追踪 ID |
所有上下文 Header 必须使用小写。
| 变量 | 默认值 | 说明 |
|---|---|---|
SERVER_PORT |
8080 |
服务端口 |
DB_URL |
jdbc:mysql://localhost:3306/user_center |
数据库连接地址 |
DB_USERNAME |
user_center |
数据库用户名 |
DB_PASSWORD |
空 | 数据库密码 |
REDIS_HOST |
localhost |
Redis 地址 |
REDIS_PORT |
6379 |
Redis 端口 |
REDIS_PASSWORD |
空 | Redis 密码 |
KAFKA_BOOTSTRAP_SERVERS |
localhost:9092 |
Kafka 地址 |
mvn clean package
java -jar bootstrap/target/bootstrap-1.0.0-SNAPSHOT.jardocker build -t <registry>/archaiharness/user-center:latest .
docker push <registry>/archaiharness/user-center:latestkubectl set image deployment/user-center user-center=<registry>/archaiharness/user-center:latest -n <namespace>
kubectl logs -n <namespace> -l app=user-center --tail=50 -fdomain不依赖 Spring、JPA、Web。application不依赖infrastructure和interfaces。interfaces不直接注入 Repository。- 访问密钥明文不得落库。
ddl.sql位于仓库根目录。
—— Engineered by Architects · Empowered by AI ——