docs(auth): 修正 JWT 默认密钥注释——桌面客户端本地 Flask 退役后服务端可独立轮换
原注释称"客户端内置同一密钥,服务端不能换"已过时(本地 Flask 与 /api/auth/sync 验签链路已随服务端化退役),会误导运维不敢轮换;2026-09-13 生产已轮换为 application-server.yml 独立密钥并验证。
This commit is contained in:
@@ -35,11 +35,12 @@ public class JwtService {
|
||||
String configured = props.getJwtSecret();
|
||||
byte[] keyBytes;
|
||||
if (configured == null || configured.isBlank()) {
|
||||
// 已分发到用户机器的桌面客户端内置同一个默认密钥,服务端必须保持一致,
|
||||
// 不能随机生成,否则所有旧客户端 /api/auth/sync 验签失败导致无法登录。
|
||||
// 兜底:未配置时使用内置默认密钥(公开值,等同无防护,任何人可伪造 token)。
|
||||
// 桌面客户端本地 Flask 已退役,服务端可独立轮换密钥;若恢复客户端侧验签,
|
||||
// 需与客户端同步下发密钥后才能轮换。
|
||||
keyBytes = INSECURE_DEFAULT_SECRET.getBytes(StandardCharsets.UTF_8);
|
||||
log.warn("[auth] AIIMAGE_JWT_SECRET 未配置,使用内置默认密钥;"
|
||||
+ "生产环境请通过环境变量 AIIMAGE_JWT_SECRET 配置固定密钥(需与桌面客户端一致)");
|
||||
+ "生产环境请在 application-server.yml 配置 aiimage.auth.jwt-secret");
|
||||
} else {
|
||||
keyBytes = configured.getBytes(StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user