架构总览
它解决什么问题
Section titled “它解决什么问题”IAM 不是一个独立身份服务器,而是一组可嵌入的 Spring Boot 模块。理解分层,才能知道哪一层该由宿主实现、哪一层由 starter 提供。
| 层 | 模块 | 职责 |
|---|---|---|
| 核心模型 | muer-core |
定义 IamPrincipal、ResourceDescriptor、ResourceScope 等模型与端口(如 ResourceHierarchyProvider) |
| 认证 | muer-authentication |
IdentityAuthenticator、LoginRequest、AuthenticationResult、Profile 切换 |
| 授权 | muer-authorization |
AuthorizationEngine、AuthorizationRequest、AuthorizationDecision、AuthorizationProfile、PermissionTemplateVersion |
| 会话 | muer-session |
AuthSession、TokenRecord 及其生命周期 |
| 持久化 | muer-persistence-mybatis |
Schema 迁移与数据访问 |
| 诊断 | muer-diagnostics |
复用同一引擎的授权诊断 |
| 管理 Web | muer-management-web |
登录、Session、Profile、诊断等 HTTP 端点(见 OpenAPI) |
| 自动装配 | muer-spring-boot-autoconfigure |
Bearer Filter、RequirePermission 拦截器、MuerProperties |
| 聚合 | muer-spring-boot-starter |
聚合上述依赖,宿主只需引入它 |
| 示例 | muer-example |
唯一消费应用,演示完整链路 |
宿主接入的三个 SPI
Section titled “宿主接入的三个 SPI”IdentityAuthenticator:校验凭据并投影IamPrincipal(源码 IdentityAuthenticator.java);ResourceHierarchyProvider:判断资源是否落在 scope 内(源码 ResourceHierarchyProvider.java);MvcResourceDescriptorResolver:把请求解析为ResourceDescriptor。