Skip to content

项目结构

IAM 是一个多模块 Maven 工程,但普通宿主应用通常只需要依赖 muer-spring-boot-starter。了解模块边界有助于避免业务代码直接依赖内部实现。

业务应用的统一依赖入口。

负责 Spring Boot 自动配置、Bearer Token 解析、声明式 MVC 授权等集成能力。宿主通常通过 Starter 间接获得它。

业务代码可能直接使用这些公共类型:

  • IamPrincipal
  • IdentityAuthenticator
  • AuthorizationEngine
  • ResourceHierarchyProvider
  • ResourceDescriptor
  • @RequirePermission
  • MvcResourceDescriptorResolver

稳定候选边界见Public API

仓库还包含认证、授权、Session、Audit、Diagnostics、MyBatis Persistence、Management Web 等模块,用来隔离不同职责。

普通 Consumer 不应为了“方便”直接导入:

  • MyBatis Mapper;
  • Repository implementation;
  • persistence implementation;
  • internal / impl 包。

muer-example 是仓库中的 Consumer Showcase,用于证明 Starter 可以被独立 Spring Boot 应用消费。

它同时提供 QuickStart 的 Alice / Document 示例,但不是要求用户照搬的生产项目模板。生产应用应该保留自己的用户模型、业务资源和部署方式,只接入 IAM 公共 API / SPI。

  • 用户文档负责说明如何配置、启动和调用 IAM;
  • muer-example 展示真实接入方式;
  • Testcontainers、独立 Consumer 验收与完整回归由项目 CI 负责。

因此普通使用者无需复制仓库测试环境,也不需要为了部署 IAM 运行所有测试。