feat/webauthn-mfa
main
AD 密码验证后通过 Spring Security WebAuthn 完成 MFA,接入 Hydra Login/Consent 与统一注销;新增受 MFA、直接管理组及 CSRF 保护的客户端 CRUD API。Hydra 继续承担 OAuth2/OIDC 签发和客户端持久化,不公开管理端口,不直接读写其数据库。
ClientRepository
HydraClientRepository
HydraGateway
验证:37 项 JVM 测试全部通过,bootJar 构建成功;隔离浏览器完成 AD → passkey → Hydra code/token 验签 → 再次授权确认 → RP logout → back-channel token 验签与 sid 核对 → Spring session 失效。真实 PostgreSQL 测试覆盖 client CRUD、Hydra 重启持久化与更新保留密钥。wiki 文档检查通过。
生产 Go/Authelia/Gitea 链路未切换;新增 Hydra 路径仅在隔离环境验证。真实 subject 映射、正式 auth.ddupan.top 路由和新链路人类验收尚待完成;本轮按约定未运行 Native。
文档:docs/webauthn.md、docs/hydra-login.md、docs/client-management.md。关联 #1,承接已合并的 #4。
本轮 review 重构新增跨连接注册锁、事务回滚和 Hikari 属性绑定验证;日常 JVM 验证跳过测试 AOT,因其夹具 LDAP 监听线程阻止进程退出。测试 AOT/Native 仍待阶段性验证,记录在 docs/native-validation.md。
No dependencies set.
The note is not visible to the blocked user.
AD 密码验证后通过 Spring Security WebAuthn 完成 MFA,接入 Hydra Login/Consent 与统一注销;新增受 MFA、直接管理组及 CSRF 保护的客户端 CRUD API。Hydra 继续承担 OAuth2/OIDC 签发和客户端持久化,不公开管理端口,不直接读写其数据库。
ClientRepository,由HydraClientRepository实现。HydraGateway,HTTP client 由 Boot builder 装配,超时可配置。验证:37 项 JVM 测试全部通过,bootJar 构建成功;隔离浏览器完成 AD → passkey → Hydra code/token 验签 → 再次授权确认 → RP logout → back-channel token 验签与 sid 核对 → Spring session 失效。真实 PostgreSQL 测试覆盖 client CRUD、Hydra 重启持久化与更新保留密钥。wiki 文档检查通过。
生产 Go/Authelia/Gitea 链路未切换;新增 Hydra 路径仅在隔离环境验证。真实 subject 映射、正式 auth.ddupan.top 路由和新链路人类验收尚待完成;本轮按约定未运行 Native。
文档:docs/webauthn.md、docs/hydra-login.md、docs/client-management.md。关联 #1,承接已合并的 #4。
本轮 review 重构新增跨连接注册锁、事务回滚和 Hikari 属性绑定验证;日常 JVM 验证跳过测试 AOT,因其夹具 LDAP 监听线程阻止进程退出。测试 AOT/Native 仍待阶段性验证,记录在 docs/native-validation.md。
接入 WebAuthn 第二因素与 PostgreSQL 凭据仓储to 接入 WebAuthn MFA、Hydra 授权与客户端管理