Skip to content

v1.6.3 - 修复匿名访客访问媒体代理被重定向登录页

Choose a tag to compare

@tsdaer tsdaer released this 21 Sep 13:16
· 10 commits to master since this release

v1.6.3:修复匿名访客访问媒体代理被重定向到登录页

修复

  • 匿名访客访问 media-proxy 会被 302 到 /login?authentication_required,
    表现是前台视频资源加载失败,而管理员的浏览器(已登录)会走到上游类型检查,
    于是同一个功能对不同人报出不同的错。
  • 根因:Halo 的 RequestInfoFactory 会把 /apis/{group}/{version}/{资源} 判成资源请求
    (resource=media-proxy、verb=get),nonResourceURLs 规则匹配不到这类路径,
    匿名角色必须把资源名逐个写进 resources。此前只声明了 nonResourceURLs,
    同一规则里的 libraries 之所以能用,是因为它另有资源规则。
  • 公开资源清单补上 media-proxy,并在 roleTemplates.yaml 注释里写明这个坑。

测试

  • 新增 PublicEndpointRoleTest,把公开端点的资源清单与匿名角色对起来;
    已用「临时移除 media-proxy」验证过它会失败。
  • 公网用例超时放宽到 180 秒,避免跑整套用例时因外部站点变慢而误报。
  • Java 用例 123 → 127。

同时包含 v1.6.2 的内容:媒体代理放行 application/octet-stream 对象并按 URL 扩展名
推断类型(对象存储里没带 Content-Type 的视频此前会被 415 挡掉)。