收敛 IAM 仓储与 Hydra 网关并恢复数据源自动配置
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# OAuth2/OIDC 客户端管理
|
||||
|
||||
本服务通过受限 API 管理 Hydra 中的第一方 confidential authorization-code 客户端。
|
||||
领域层定义 `ClientRepository`,基础设施的 `HydraClientRepository` 实现远端持久化。
|
||||
API 没有管理 UI,沿用浏览器 Spring session;调用者必须完成有效的密码 + WebAuthn MFA,
|
||||
且直接属于配置的管理组。默认组列表为空,拒绝全部管理操作。
|
||||
|
||||
|
||||
@@ -46,6 +46,9 @@ iam:
|
||||
enabled: true
|
||||
admin-url: http://hydra-admin.hydra.svc.cluster.local:4445
|
||||
public-url: https://hydra.ad.ddupan.top
|
||||
http:
|
||||
connect-timeout: 3s
|
||||
read-timeout: 5s
|
||||
clients: [gitea] # 仅供尚未写入管理标记的旧客户端过渡
|
||||
subjects:
|
||||
- authority: ad.example.test
|
||||
@@ -63,6 +66,9 @@ Hydra 环境配置需将 login URL 指向 `/oauth2/start`,consent URL 指向 `
|
||||
logout URL 指向 `/oauth2/logout`,默认 post-logout URL 指向本服务 `/signin`。
|
||||
本仓库的实现与测试不等于这些生产设置已变更。Admin URL 可以使用现役受 NetworkPolicy
|
||||
约束的集群内 HTTP,也可通过 loopback port-forward;不能公开管理端口。
|
||||
HTTP client 在配置层使用 Boot 提供的 `RestClient.Builder` 装配并注入,保留框架定制与观测能力。
|
||||
上述连接/读取超时有默认值且必须为正,可按部署环境覆盖;禁止跟随重定向不提供关闭开关。
|
||||
Login、Consent 和 Logout 共用 `HydraGateway` 与 Admin client。
|
||||
公共 origin 必须 HTTPS,HTTP 只接受隔离测试的 loopback。客户端请求必须显式带 redirect_uri。
|
||||
|
||||
## 客户端注册与管理边界
|
||||
|
||||
@@ -44,3 +44,10 @@ WebAuthn 集成;TOTP、恢复方式与已有 Authelia MFA 的迁移方式需
|
||||
|
||||
通过上述测试后才准备生产切换;保留现役 OIDC 上游适配器作为回退路径。应用镜像以
|
||||
不可变 digest 交给 homelab-infra,部署状态与真实人类 MFA 验收分别记录。
|
||||
|
||||
### 测试 AOT 的待排查项(2026-09-29)
|
||||
|
||||
本轮重构的 `processTestAot` 在处理测试上下文后未退出;线程栈显示 `DestroyJavaVM`
|
||||
等待测试夹具的非 daemon LDAP listener。该轮日常验证使用
|
||||
`test bootJar -x processTestAot -x compileAotTestJava -x processAotTestResources`
|
||||
执行 JVM 测试,不把该结果视为测试 AOT 或 Native 验收。阶段性原生验证前需解决夹具生命周期。
|
||||
|
||||
@@ -70,3 +70,14 @@ IAM_WEBAUTHN_FIXTURE=1 npm --prefix frontend run test:browser -- webauthn.spec.t
|
||||
测试专用启动类仅在 test classpath,不进入生产 JAR,也不提供生产调试 API。
|
||||
维护者已确认开发入口的 AD + passkey 人类路径能够工作。更多认证器兼容性和 Native 路径
|
||||
仍需独立验收,不能套用虚拟认证器结果。生产共享 PostgreSQL 的接入留在部署阶段。
|
||||
|
||||
## 数据源与注册事务
|
||||
|
||||
PostgreSQL 是应用运行依赖,通过 `spring.datasource.*` 配置,连接池参数使用
|
||||
`spring.datasource.hikari.*`。DataSource、JdbcTemplate 与事务管理器由 Boot 自动配置,
|
||||
WebAuthn 配置仅装配官方凭据仓储及认证策略;不在应用配置中排除 DataSource 自动配置。
|
||||
仅不涉及持久化的独立测试显式排除它。
|
||||
|
||||
首次注册的数据库锁由 `authentication/infrastructure/persistence/JdbcCredentialRegistration`
|
||||
封装;获得用户行锁后,在同一事务中重新检查注册策略并调用官方凭据保存逻辑。
|
||||
WebAuthn 策略集成不直接引用 SQL 或表结构。失败回滚与跨连接串行化由 PostgreSQL 集成测试覆盖。
|
||||
|
||||
Reference in New Issue
Block a user