外观
Authentication 身份适配
Authentication 将应用已经验证的身份接入 EFC 的统一会话访问。例如,应用校验请求凭证后返回一个登录用户,后续 Controller、审计逻辑和权限判断就能通过 SessionUserUtil 使用同一套身份模型。
组件提供身份来源 SPI、匿名回退、请求内缓存、权限判断回调和状态 Hook,并在有 Store 时装配权限失效时间戳服务。账号密码校验、Token 签发与撤销、角色数据以及受保护的 HTTP 路由由应用或其他模块实现。
能力与阅读入口
| 任务 | 内容 | 文档 |
|---|---|---|
| 接入身份来源 | 实现 SPI,验证有身份、无身份和无权限请求 | 快速开始 |
| 读取当前用户 | 装配条件、登录策略、用户模型、请求缓存与工具 | 使用与配置 |
| 接入角色与状态变化 | 权限回调、Store 时间戳、角色/登录 Hook 与清理 | 权限与状态扩展 |
接入坐标
运行时依赖为 com.own.component:springboot-component-authentication:4.1.0-SNAPSHOT,由 Component BOM 管理版本。它是 JAR,Java 包前缀为 com.own.component.authentication,传递引入 Base、Property、Store API 和 Web;不携带 Store 后端。
AutoParentAuthenticationLoginUser 仅在 Servlet Web 应用装配,将应用的 AuthenticationLoginUser 包装后适配为 Base 的 SessionUserProvider。没有自定义身份来源时,默认实现会在读取身份时抛出“请实现 AuthenticationLoginUser 接口”,不会自动把请求头或用户 ID 当作登录结果。
PermissionCacheAutoConfiguration 单独按 StoreClient 是否存在装配,不要求 Servlet。无需权限时间戳的最小身份接入可以不使用 Store。
与其他模块协作
- Base 定义用户接口与 SessionUserUtil;Authentication 提供默认适配链路。
- Security 负责登录与权限注解的拦截。仅添加 Authentication 不会让普通 HTTP 接口自动受保护,也不会激活 @PermissionOperation 的切面。
- Token 和 Business 登录模块可以提供实际身份来源;Authentication 本身没有
/login、/logout、刷新 Token 或密码校验接口。 - 系统菜单业务通过 RoleHook 提供角色和操作数据。Hook 的聚合与调用需要应用或 Business 登录模块,不由 Authentication 自动完成。
- Store 用于共享权限失效时间戳,与当前 request 内的用户缓存是两种不同机制。
按文件查阅方法
重点文件与方法逐项说明核心类、接口和方法重载的用途、参数、返回值、调用示例与注意事项,并链接到公开仓库对应源码。