收敛 IAM 仓储与 Hydra 网关并恢复数据源自动配置

This commit is contained in:
2026-09-29 13:21:34 +00:00
parent 62b6e9db40
commit fdf2e4958b
30 changed files with 267 additions and 195 deletions
+3 -1
View File
@@ -53,6 +53,7 @@ npm --prefix frontend run build
./gradlew bootRun
```
应用启动需要配置 PostgreSQL 数据源,连接与开发容器说明见[第二因素](docs/webauthn.md)。
测试需要可用的 Docker,生成器配置了 Grafana LGTM Testcontainer。
测试覆盖 AD 第一因素、浏览器流程和监控集成。人类登录统一从 `/signin` 进入。
使用 GraalVM 25 验证原生测试与编译:
@@ -87,11 +88,12 @@ configuration → 装配上述实现
- `authentication/infrastructure/ad`:AD bind、Spring Data LDAP 用户仓储、LDAP 实体与领域映射。
使用同一次用户 bind 的连接,查询结束关闭,不新增服务账号,不保存用户密码。
- `authentication/infrastructure/security`:Provider 将目录用户转换为仅含密码因素的认证结果。
- `authentication/infrastructure/persistence`:封装注册并发锁及事务,不把表结构带入 Security 策略。
- `authentication/infrastructure/webauthn`:凭据归属与注册策略、challenge 仓储扩展;密码学校验和 JDBC 存储交给 Spring Security。
- `authentication/interfaces/web`:登录页面与上下文转换;不处理密码 POST、认证会话或退出。
- `configuration`:Spring 组件装配、安全链、静态资源和 Native hints。
- `authorization`:领域请求、应用授权用例与策略、Hydra Admin 基础设施、浏览器请求绑定分层维护;客户端注册与签发仍归 Hydra。
- `clients`:受 MFA 与直接管理组保护的客户端 CRUD;持久化与密钥由 Hydra 持有,见[管理接口](docs/client-management.md)。
- `clients/domain/ClientRepository`:客户端仓储契约,由 Hydra HTTP 实现;受 MFA 与直接管理组保护的客户端 CRUD;持久化与密钥由 Hydra 持有,见[管理接口](docs/client-management.md)。
- `frontend/src`:入口、页面、表单组件和页面数据契约分别维护,只包含真实登录流程。
测试覆盖应用用例、AD 仓储和完整 Spring Security 过滤器链,LDAP 夹具集中在测试 `support` 包。