/login 可能会被页面的别名覆盖掉
系统信息
- 外部访问地址: https://ryanc.cc
- 启动时间: 2024-10-17 18:25
- 版本: 2.20.4
- 构建时间: 2024-10-17 16:57
- Git Commit: c465bf8
- Java: IBM Semeru Runtime Open Edition / 21.0.4+7-LTS
- 数据库: PostgreSQL / 16.3 (Debian 16.3-1.pgdg120+1)
- 操作系统: Linux / 5.15.0-88-generic
- 已激活主题: Walker 1.12.1
- 已启动插件:
- Image Stream 1.0.0-SNAPSHOT
- Meilisearch 2.0.1
- 编辑器超链接卡片 1.1.0
- 页面静态缓存 1.2.1
- Data Studio(数据工厂) 1.0.0-alpha.2
- 静态网页服务 1.0.0-alpha.5
- SEO 工具集 1.1.0
- Markdown / HTML 内容块 1.2.0
- 应用市场 1.6.0
- RSS 1.3.0
- 搜索组件 1.6.2
- 图库管理 1.4.0
- 对象存储(Amazon S3 协议) 1.12.0
- 增强备份(Backup IMproved) 1.1.1
- highlight.js 代码高亮 1.3.2
- lightgallery.js 灯箱 1.2.1
- Sitemap 1.1.2
- Umami 1.4.0
- OAuth2 认证 1.4.1
- 瞬间 1.8.0
- 链接管理 1.5.0
- 评论组件 2.5.0
使用的哪种方式运行?
Docker
发生了什么?
测试发现,Halo 的页面功能可以覆盖掉 /login 路由,可能会导致无法再正常访问 /login 页面。建议禁止系统保留的路由名称,或者支持安全模式(开启之后不允许主题覆盖 /login,不允许页面路由覆盖 /login)。
/kind improvement /area core
复现步骤
No response
相关日志输出
No response
附加信息
No response
可以尝试将下面这行中的 login 修改为 plugin:system:login。
https://github.com/halo-dev/halo/blob/c465bf8c75266af5e77e368c4ddb87e2e231516d/application/src/main/java/run/halo/app/security/preauth/PreAuthLoginEndpoint.java#L102
可以尝试将下面这行中的
login修改为plugin:system:login。halo/application/src/main/java/run/halo/app/security/preauth/PreAuthLoginEndpoint.java
Line 102 in c465bf8
ServerResponse.ok().render("login", Map.of(
这个方法不行,这是页面的路由优先级高导致轮不到这里
/assign