已合并
fix: 打通用户面的同源代理并补齐联合认证配置 #463
fix: 打通用户面的同源代理并补齐联合认证配置 #463
已合并
Wal1et创建于 9 天前
Wal1et
Wal1et
9 天前

Paired: GitHub #112GitCode !463

What type of PR is this?

/kind

Self-checklist:(请自检,在[ ]内打上x,我们将检视你的完成情况,否则会导致pr无法合入

likedislike
Pull Request已成功合入, 合并人@曹玉哲
(感谢 Wal1et 的贡献)
atomgit-bot
atomgit-bot
9 天前 评论:

变更摘要

该 PR 主要打通 Manager Web 到用户面(User Web 与 Gateway)的同源代理链路,并补齐联合认证(federation)配置。核心改动是:/chat 由直接下发静态 dist 改为反向代理到独立的 User Web 服务,新增到 Gateway 的 HTTP(/gateway-api/file-api/share-api)与 WebSocket(/ws)中继,并在统一用户入口上统一做身份校验;同时把访问令牌同步为同源 Cookie 供代理鉴权,重命名/新增网关与用户面配置项,修复 Manager API 代理的内部 307 重定向,以及补齐 IDENTITY_FEDERATION_* 联合认证配置与对应测试。

主要改动

  • 打通用户面同源代理链路: manager_web.py/chat 从静态文件改为经 _relay 转发到 user_web_url;新增 /gateway-api/{tail}(流式 _relay_streamgateway_http_url/api/{tail})、/file-api/share-api 代理,以及 /ws 双向 WebSocket 中继 _relay_websocket,这些路由均先经 _validate_identity 校验身份。
  • 代理端消化 Manager API 内部重定向: /api 与新增的 /manager-api/{tail} 代理启用 follow_redirects=True,由代理完成 Manager Server 集合路由的 307 尾斜杠跳转,避免内部集群域名暴露给浏览器;/manager-api 独立前缀以避免与 /api/v1/* 冲突。
  • 认证支持同源 Cookie 并同步到前端: _request_authorization 兼容 authorization 请求头或 openjiuwen_access_token Cookie;api.ts 新增 syncAccessCookie,在设置/清除 token 时将 access token 写入 Path=/; SameSite=Strict 的同源 Cookie。
  • 配置项重命名与新增: config.py.env.examplemanager_web_user_server_target 改为 manager_web_user_web_targetmanager_web_gateway_sse 改为 manager_web_gateway_http_target,并新增 manager_web_gateway_ws_target;CLI 参数同步替换为 --user-web-target--gateway-http-target--gateway-ws-targetDockerfile.manager-web 移除 user_web/dist 占位目录的创建。
  • 补齐联合认证配置与前端上下文同步: .env.example 新增 IDENTITY_FEDERATION_DEMO_ENABLEDIDENTITY_FEDERATION_PUBLIC_PATH_PREFIXIDENTITY_FEDERATION_REQUEST_TTLIDENTITY_FEDERATION_CODE_TTLIDENTITY_FEDERATION_DEMO_ADMIN_GROUP(默认关闭),并新增 test_federation_config.py 验证默认值与显式环境变量;UserConsole.tsx 通过 postMessage 在父窗口与内嵌 User Web iframe 间同步用户/组织/组网/Agent 上下文快照并支持内嵌页切换与登出;vite.config.ts 开发代理同步更新为 /chat/gateway-api/file-api/share-api/ws/manager-api 等新前缀。
likedislike
atomgit-bot
atomgit-bot
9 天前 评论:

🤖 AI 代码检视正在进行中,请稍候…

likedislike
atomgit-bot
atomgit-bot
9 天前 评论:

AtomGit AI 助手使用指南

在 PR 评论中使用命令即可触发。支持在普通评论和代码行评论中使用。

功能 命令 说明
代码审查 /ai review 检查代码质量、潜在问题、安全风险
PR 摘要 /ai summary 生成 PR 变更内容的结构化摘要
代码解释 /ai explain 解释代码变更的逻辑和意图
自由提问 @atomgit-bot <问题> 询问关于本 PR 的任何问题
帮助 /ai help 显示此帮助信息

免责声明

AI 助手可能存在误判,请结合自身判断。可以对评论点 👍 或 👎 帮助我们改进。

likedislike
openJiuwen-bot成员
9 天前 评论:

欢迎来到 openJiuwen 社区

Hey @u010240195 , 感谢你对社区的贡献.

机器人使用手册

有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。

likedislike
OopenJiuwen-bot成员
9 天前 添加了label:openJiuwen-cla/yes
openJiuwen-bot成员
9 天前 评论:

CLA 签署成功

u010240195, 感谢您的代码贡献。 所有的代码贡献者都已完成了 CLA 签署。 👍

likedislike
Oopenjiuwen-sync成员
9 天前 修改了pull request 的描述
Wal1etWal1et
9 天前 关联了issue:[Feature]: Agent Runtime - Agent执行
openJiuwen-bot成员
9 天前 评论:
任务名称 结果 日志操作
静态检查 ✅SUCCESS 点此跳转
禁用词扫描 ✅SUCCESS 点此跳转
防投毒检查 ✅SUCCESS 点此跳转
开源合规检查 ✅SUCCESS 点此跳转
UT测试 N/A N/A
ST测试 N/A N/A
build 编译包 N/A N/A
ruff codecheck {{ruff_codecheck_result}} {{ruff_codecheck_link_text}}
likedislike
OopenJiuwen-bot成员
9 天前 添加了label:ci-successful
曹玉哲成员
9 天前 合入了pull request
OopenJiuwen-bot成员
9 天前 删除了label:ci-successful