From 92f4ed7a2ab857f478a9699e553dd6562f4b63bb Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Mon, 29 Jun 2026 16:36:24 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B3=A8=E5=86=8C=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E5=8F=AF=E9=80=89=EF=BC=8C=E6=9C=BA=E5=99=A8?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E6=97=A0=E9=9C=80=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - RegisterRequest.password 移除 @NotBlank - 密码为空时自动生成随机密码 - mediabot 只需 email 即可注册获得 apiKey/apiSecret - 重装后同邮箱重新注册即可,无需记住密码 --- .../main/java/com/par/core/dto/RegisterRequest.java | 1 - .../com/par/core/service/impl/AccountServiceImpl.java | 10 +++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/par-core/src/main/java/com/par/core/dto/RegisterRequest.java b/par-core/src/main/java/com/par/core/dto/RegisterRequest.java index 9d8baa1..855a2d1 100644 --- a/par-core/src/main/java/com/par/core/dto/RegisterRequest.java +++ b/par-core/src/main/java/com/par/core/dto/RegisterRequest.java @@ -15,7 +15,6 @@ public class RegisterRequest { @Email(message = "邮箱格式不正确") private String email; - @NotBlank(message = "密码不能为空") @Size(min = 6, max = 128, message = "密码长度须在 6-128 位之间") private String password; diff --git a/par-core/src/main/java/com/par/core/service/impl/AccountServiceImpl.java b/par-core/src/main/java/com/par/core/service/impl/AccountServiceImpl.java index a7123a3..de606e6 100644 --- a/par-core/src/main/java/com/par/core/service/impl/AccountServiceImpl.java +++ b/par-core/src/main/java/com/par/core/service/impl/AccountServiceImpl.java @@ -49,7 +49,15 @@ public class AccountServiceImpl implements AccountService { Account account = new Account(); account.setEmail(request.getEmail().toLowerCase().trim()); - account.setPasswordHash(PasswordUtil.encode(request.getPassword())); + + // 密码为空则自动生成(机器注册场景) + String password = request.getPassword(); + if (password == null || password.isBlank()) { + byte[] pwdBytes = new byte[16]; + SECURE_RANDOM.nextBytes(pwdBytes); + password = Base64.getUrlEncoder().withoutPadding().encodeToString(pwdBytes); + } + account.setPasswordHash(PasswordUtil.encode(password)); account.setDisplayName(request.getDisplayName()); account.setTrustLevel(TrustLevel.MEMBER); account.setIsActive(true);