JianFeeeee
07d35297a6
fix(webui): 反代三处缺陷 —— 入口不显示、子域链接失效、前缀重定向逃逸
全部来自本机 systemd 实例的实测,不是推测。
1. 插件页「服务入口」永远显示"暂无"
TABS.plugins.fetch 漏了 proxyServices,而 renderPlugins 第一行就调
renderProxyServicesCard()(读 state.proxyServices)。于是该页签
永远不请求 /api/v1/proxy/services —— journalctl 实测:用户正常使用
期间零请求,只有我手工 curl 的那一条。
判据 TestProxyServicesReachesPluginsTab 钉住三环(A 调用 B、B 读
state、C fetch 含块名),已做变异验证(删掉该项立刻红)。
不用静态调用图做通用依赖检查:实测它在 dashboard.js 上不可靠
(中文注释引号破坏配平、分发器展开导致大量误报),已在注释里
写明原因,避免后人重复踩。
2. 面板生成的子域链接 100% 进不了反代
生成链接走 base_url 的主机名,路由匹配只认 base_domain。
生产实例 base_url=homeagent.jianfgit.xyz、base_domain=localhost,
于是链接落到门户 mux → 302 /login,而手拼 *.localhost 反而能进。
新增 proxyBaseDomains 返回全部候选基域(配置值 → base_url 主机名
→ localhost),serveProxyHost 用它匹配。两者都认,不是二选一:
*.localhost 是 RFC 6761 的零配置基座,不能丢。
3. 前缀模式下上游根绝对路径重定向逃出挂载点
实测 NapCat:上游 GET / → 301 Location: /webui,浏览器跟随到
https://<门户>/webui(已跑出 /napcat),门户 mux 接住 → 302 /login。
httputil.ReverseProxy 不改写 Location,在 ModifyResponse 里补:
只改以 / 开头且未带前缀的,避开 //host 与已经带前缀的(否则会出现
/napcat/napcat/webui)。
顺带纠正:base_domain 保持原配置不动,改由代码兼容两种基域 ——
改配置会抢走别的 *.jianfgit.xyz 子域,且 *.jianfgit.xyz 是单层通配,
huawei-smarthome.homeagent.jianfgit.xyz 本来就证书不匹配(实测
verify error 62)。要外网可用子域形态,应把 base_domain 配成
jianfgit.xyz,那是运维决策,不在本次改动内。
2026-11-04 17:15:43 +08:00
..
2026-10-13 10:12:57 +08:00
2026-10-22 20:49:44 +08:00
2026-10-17 21:16:49 +08:00
2026-10-31 10:03:43 +08:00
2026-10-19 21:13:23 +08:00
2026-10-21 12:17:19 +08:00
2026-10-08 10:41:22 +08:00
2026-11-04 17:15:43 +08:00
2026-10-31 10:03:43 +08:00
2026-10-27 01:43:19 +08:00
2026-11-04 17:15:43 +08:00
2026-10-26 20:55:25 +08:00
2026-10-17 21:26:12 +08:00
2026-10-21 12:17:19 +08:00
2026-10-18 07:38:10 +08:00
2026-10-18 07:38:10 +08:00
2026-10-21 12:17:19 +08:00
2026-10-26 09:23:58 +08:00
2026-10-25 15:55:26 +08:00
2026-08-26 09:17:07 +08:00
2026-09-14 07:03:47 +08:00
2026-10-23 15:51:02 +08:00
2026-10-21 12:17:19 +08:00
2026-10-21 12:17:19 +08:00
2026-10-21 12:17:19 +08:00
2026-10-23 15:51:02 +08:00
2026-10-24 13:25:18 +08:00
2026-10-21 12:17:19 +08:00
2026-10-21 12:17:19 +08:00
2026-10-21 12:17:19 +08:00
2026-10-26 20:55:25 +08:00
2026-08-24 16:22:28 +08:00
2026-09-14 07:03:47 +08:00
2026-10-21 12:17:19 +08:00
2026-10-22 20:49:44 +08:00
2026-10-25 15:55:26 +08:00
2026-10-26 20:55:25 +08:00
2026-10-25 15:55:26 +08:00
2026-10-17 21:26:12 +08:00
2026-10-17 21:18:07 +08:00
2026-10-31 15:56:10 +08:00
2026-10-21 12:17:19 +08:00
2026-10-25 15:55:26 +08:00
2026-07-17 21:41:03 +08:00
2026-10-18 07:38:10 +08:00
2026-10-18 07:38:10 +08:00
2026-10-22 20:49:44 +08:00
2026-10-20 08:57:36 +08:00
2026-10-22 20:49:44 +08:00
2026-10-21 12:17:19 +08:00
2026-11-04 17:15:43 +08:00
2026-11-04 12:22:08 +08:00
2026-10-21 12:17:19 +08:00
2026-10-17 19:18:24 +08:00
2026-10-13 16:21:04 +08:00
2026-10-22 20:49:44 +08:00