37 lines
944 B
Java
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);
|
|
}
|
|
}
|