试验 React 内联上下文与原生表单登录流程 #3

Open
panxiao81 wants to merge 2 commits from feat/browser-login-preview into main
Owner

问题与结果

先验证面向人的浏览器登录体验:Spring 在首个 HTML 响应内联页面上下文,React 渲染,原生表单 POST 后由服务端决定下一步并 303 重定向。页面不请求上下文、不使用客户端路由,也不增加 Node/BFF、模板引擎或 SSR 运行时。

新增默认关闭的 /preview,包含称呼、模拟验证、错误重试与完成页面。演示码 123456 只用于页面切换,不验证身份、不创建认证身份、不接 AD/MFA/Hydra。静态 hash 资源长期缓存,动态页面 no-store,CSRF 与脚本数据转义纳入验证。构建脚本挂载 npm 与 Gradle 缓存;修复手写 Native 元数据与 AOT 产物在 bootJar 中重名的问题。

验证

  • TypeScript/Vite、bootJar、nativeCompile 通过。
  • JVM test、testAot、nativeTest 各 6 项通过,0 失败、0 跳过。
  • 直接运行应用 ELF:默认预览 404,显式开启后 200;匿名应用与指标 401,认证指标 200,健康请求计数增加 3。
  • Native 上 Chromium 三项通过:原生 POST 与整页导航、无 fetch/XHR、静态 JS 命中缓存、错误重试、移动端与转义;完成预览仍不能访问受保护应用。
  • 单次 Native smoke:0.351 秒可响应,RSS 145.50 MiB,ELF 120.44 MiB。没有新增反射补丁,运行日志未发现 Native 注册错误。
  • 模拟 60ms 延迟、1.5Mbps 下载、四倍 CPU slowdown:导航到 React 提交 DOM 1.702 秒;缓存后点击到下一页标题可见 560ms。单次模拟,不是生产 SLA,两个计时区间不同。未启用 HTTP 压缩。
  • Python 编译、Shell 语法、git diff --check 通过。

部署与文档

关联 #1,不关闭整体认证任务。现役 Go/Authelia 登录不变,本 PR 不部署或切换生产入口。默认关闭的演示流程不得当成 MFA 实现复用;多标签独立事务等正式认证保证留在后续。

体验命令、截图与详细测量范围见 docs/browser-preview.md。wiki 前端边界见 homelab-wiki PR #7。

## 问题与结果 先验证面向人的浏览器登录体验:Spring 在首个 HTML 响应内联页面上下文,React 渲染,原生表单 POST 后由服务端决定下一步并 303 重定向。页面不请求上下文、不使用客户端路由,也不增加 Node/BFF、模板引擎或 SSR 运行时。 新增默认关闭的 /preview,包含称呼、模拟验证、错误重试与完成页面。演示码 123456 只用于页面切换,不验证身份、不创建认证身份、不接 AD/MFA/Hydra。静态 hash 资源长期缓存,动态页面 no-store,CSRF 与脚本数据转义纳入验证。构建脚本挂载 npm 与 Gradle 缓存;修复手写 Native 元数据与 AOT 产物在 bootJar 中重名的问题。 ## 验证 - TypeScript/Vite、bootJar、nativeCompile 通过。 - JVM test、testAot、nativeTest 各 6 项通过,0 失败、0 跳过。 - 直接运行应用 ELF:默认预览 404,显式开启后 200;匿名应用与指标 401,认证指标 200,健康请求计数增加 3。 - Native 上 Chromium 三项通过:原生 POST 与整页导航、无 fetch/XHR、静态 JS 命中缓存、错误重试、移动端与转义;完成预览仍不能访问受保护应用。 - 单次 Native smoke:0.351 秒可响应,RSS 145.50 MiB,ELF 120.44 MiB。没有新增反射补丁,运行日志未发现 Native 注册错误。 - 模拟 60ms 延迟、1.5Mbps 下载、四倍 CPU slowdown:导航到 React 提交 DOM 1.702 秒;缓存后点击到下一页标题可见 560ms。单次模拟,不是生产 SLA,两个计时区间不同。未启用 HTTP 压缩。 - Python 编译、Shell 语法、git diff --check 通过。 ## 部署与文档 关联 #1,不关闭整体认证任务。现役 Go/Authelia 登录不变,本 PR 不部署或切换生产入口。默认关闭的演示流程不得当成 MFA 实现复用;多标签独立事务等正式认证保证留在后续。 体验命令、截图与详细测量范围见 [docs/browser-preview.md](https://git.ddupan.top/panxiao81/iam-login/src/branch/feat/browser-login-preview/docs/browser-preview.md)。wiki 前端边界见 [homelab-wiki PR #7](https://git.ddupan.top/panxiao81/homelab-wiki/pulls/7)。
panxiao81 added 1 commit 2026-09-25 19:45:22 +00:00
panxiao81 added 1 commit 2026-09-25 20:13:35 +00:00
panxiao81 marked the pull request as ready for review 2026-09-25 20:14:29 +00:00
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/browser-login-preview:feat/browser-login-preview
git checkout feat/browser-login-preview
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: panxiao81/iam-login#3