00e27152fe8a62df1494ed10c929847bd4bdf3cf
- 新增 PanelLoginTicket:v1.<时间戳>.<HMAC-SHA256> 形状,只验签与时间窗, 不发一次性状态。机器人用同一把密钥本地签发,因此不需要机器人到主站的网络调用, 一端临时不可达也不影响生成链接。窗口内可重放(用户明确接受),过期即失效。 - PersonalController 新增 GET /login?t= 换 HttpSession(先作废旧会话防固定攻击)、 /login/logout 退出、/personal/denied 提示页。 - PersonalInterceptor 放行「有效会话或 AuthCode=alone」,拒绝时回 401 供前端区分; InterceptorConfiguration 排除登录端点与 /personal/。 - server.servlet.session.cookie.path 固定为 /:nginx 会把 /user 改写成 /personal/user, 沿用容器推导的 /personal 会让浏览器判定路径不匹配而丢会话。 - 密钥经 PERSONAL_LOGIN_SECRET 环境变量注入,为空时一律拒绝而非放行。 - 新增 PanelLoginTicketTest(7 项)与登录/退出/会话相关用例,共 423 项通过。
Description
No description provided
7.8 MiB
Languages
Java
99.2%
PLpgSQL
0.5%
Shell
0.3%