跳转到正文

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 内的用户缓存是两种不同机制。

按文件查阅方法

重点文件与方法逐项说明核心类、接口和方法重载的用途、参数、返回值、调用示例与注意事项,并链接到公开仓库对应源码。