Eu devo gerar um Admin Initializer? 馃憖 #8
D煤vida: Devo criar um Comando para Gerar o Admin Automaticamente com Senhas Aleat贸rias?ContextoEstou considerando a implementa莽茫o de um comando que cria um usu谩rio admin automaticamente na primeira execu莽茫o da aplica莽茫o. A ideia 茅 garantir que sempre haja um usu谩rio admin dispon铆vel no sistema sem a necessidade de cri谩-lo manualmente. A senha seria gerada de forma aleat贸ria para maior seguran莽a. Aqui est谩 o c贸digo que pensei em usar: C贸digo Propostoimport org.springframework.boot.CommandLineRunner;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
import java.security.SecureRandom;
import java.util.Locale;
import java.util.Objects;
import java.util.Random;
@Component
public class AdminInitializer implements CommandLineRunner {
private final UserRepository userRepository;
private final PasswordEncoder passwordEncoder;
public AdminInitializer(UserRepository userRepository, PasswordEncoder passwordEncoder) {
this.userRepository = userRepository;
this.passwordEncoder = passwordEncoder;
}
@Override
public void run(String... args) {
if (userRepository.findByUsername("admin").isEmpty()) {
String password = generateRandomPassword(12); // Gerar senha aleat贸ria de 12 caracteres
User admin = new User();
admin.setUsername("admin");
admin.setPassword(passwordEncoder.encode(password)); // Senha criptografada
admin.setRole(Role.ROLE_ADMIN);
userRepository.save(admin);
System.out.println("Usu谩rio admin criado com a senha: " + password);
}
}
// M茅todo para gerar uma senha aleat贸ria
private String generateRandomPassword(int length) {
String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+";
Random random = new SecureRandom();
StringBuilder password = new StringBuilder(length);
for (int i = 0; i < length; i++) {
password.append(characters.charAt(random.nextInt(characters.length())));
}
return password.toString();
}
}O que o c贸digo faz:
Perguntas:
Gostaria de saber se essa abordagem faz sentido ou se seria melhor criar o usu谩rio admin de outra forma. |
Replies: 1 comment 5 replies
|
Eu acho que uma ideia interessante, at茅 pq assim a api pode sempre esta atualizada com os dados mais atuais do jogo. Podemos criar uma p谩gina onde a pessoa pode adicionar o personagem no banco de dados. |
Eu acho que uma ideia interessante, at茅 pq assim a api pode sempre esta atualizada com os dados mais atuais do jogo. Podemos criar uma p谩gina onde a pessoa pode adicionar o personagem no banco de dados.