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); } }