in manager/general/src/main/java/org/apache/doris/stack/component/LdapComponent.java [498:534]
public void setEntryUUIDForUser() {
SettingEntity authType = settingComponent.readSetting(ConfigConstant.AUTH_TYPE_KEY);
if (authType != null && authType.getValue().equals("ldap")) {
log.debug("studio upgrade, set entry uuid for old user");
List<CoreUserEntity> coreUsers = userRepository.getByNullEntryUUID();
log.debug("studio upgrade, set entry uuid for old user, size is {}", coreUsers.size());
if (coreUsers.size() == 0) {
return;
}
LdapSettingResp resp = readLdapConfig();
// set ldap setting
LdapSettingReq req = getLdapSettings(resp);
List<CoreUserEntity> ldapUserEntities = syncLdapUser(req);
for (CoreUserEntity coreUser : coreUsers) {
// studio 1.1 , first name = given name
String email = coreUser.getEmail();
log.debug("user {} email is {}", coreUser.getId(), coreUser.getEmail());
if (email != null) {
Optional<CoreUserEntity> ldapUserOptional =
ldapUserEntities.stream().filter(e -> e.getEmail().equals(email)).findFirst();
if (!ldapUserOptional.isPresent()) {
log.warn("user email {} not exist", email);
} else {
CoreUserEntity ldapUser = ldapUserOptional.get();
coreUser.setEntryUUID(ldapUser.getEntryUUID());
userRepository.save(coreUser);
log.debug("save entry uuid for user {} success", coreUser.getId());
}
}
}
}
}