backend/src/main/java/dev/dinauer/utils/StartupService.java
2025-06-06 20:42:25 +02:00

37 lines
944 B
Java

package dev.dinauer.utils;
import dev.dinauer.login.User;
import dev.dinauer.login.UserRepo;
import io.quarkus.elytron.security.common.BcryptUtil;
import io.quarkus.runtime.Startup;
import jakarta.annotation.PostConstruct;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import java.io.IOException;
import java.util.Set;
@ApplicationScoped
public class StartupService
{
private static final String INITIAL_USERNAME = "admin";
private static final String INITIAL_PASSWORD = "admin";
@Inject
UserRepo userRepo;
@PostConstruct
void init() throws IOException
{
if(userRepo.findOptionalByUsername(INITIAL_USERNAME).isEmpty())
{
userRepo.persist(buildInitialUser());
}
}
private static User buildInitialUser()
{
return new User(INITIAL_USERNAME, null, Set.of("admin"), BcryptUtil.bcryptHash(INITIAL_PASSWORD), true);
}
}