fix(gateway): 空 email 按用户名合成 casdoor.local 占位(email 列 NOT NULL UNIQUE)
CodeQL Advanced / Analyze (actions) (push) Canceled after 0s
CodeQL Advanced / Analyze (java-kotlin) (push) Canceled after 0s
CodeQL Advanced / Analyze (javascript-typescript) (push) Canceled after 0s
CodeQL Advanced / Analyze (python) (push) Canceled after 0s
Docker Image Build & Push / manifest (push) Canceled after 0s
Docker Image Build & Push / build-and-push-arm (push) Canceled after 0s
Docker Image Build & Push / build-and-push-amd (push) Canceled after 0s
Gateway Docker Image CI / Build and Push Gateway Docker Image (push) Canceled after 0s

This commit is contained in:
figmar
2026-09-01 19:24:21 +08:00
parent 13262aa4b1
commit f8c605b858
@@ -116,9 +116,9 @@ public class CasdoorUserService {
private User createUser(IdTokenClaims claims, String username, LocalDateTime now) {
User user = new User();
user.setUsername(username);
// email 列有唯一约束:空串会互相冲突,空值统一落 NULL(NULL 不参与唯一约束)
// email 列 NOT NULL UNIQUE:空串会互相冲突,缺省按用户名合成占位 email
String email = claims.email();
user.setEmail(email == null || email.isBlank() ? null : email.trim());
user.setEmail(email == null || email.isBlank() ? username + "@casdoor.local" : email.trim());
user.setFullName(claims.name());
// 本地密码不可用:随机占位(登录统一走 Casdoor,本地 BCrypt 仅迁移期兜底)
user.setPasswordHash(new BCryptPasswordEncoder(10).encode(UUID.randomUUID().toString()));