Software Development Notions

Resumen login JPA (PostgreSQL)

April 17, 2020

Todo lo necesario para implementar un login mediante JPA, utilizando Postgresql como motor de base de datos.

  1. Definir un modelo
public class Usuario {
    private int id;
    private String nombre;
    private String clave;

    public int getId() {
        return id;

    public void setId(int id) { = id;

    public String getNombre() {
        return nombre;

    public void setNombre(String nombre) {
        this.nombre = nombre;

    public String getClave() {
        return clave;

    public void setClave(String clave) {
        this.clave = clave;
  1. Crear un repositorio
public interface UsuarioRepository extends JpaRepository<Usuario,Integer> {
    Usuario findByNombre(String nombre);
  1. Servicio de usuarios
public class UsuarioService implements UserDetailsService {
    private UsuarioRepository repositorio;

    private BCryptPasswordEncoder encoder;

    public void crearUsuario() {
        Usuario usuario = new Usuario();
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        Usuario encontrado = repositorio.findByNombre(username);
        List<GrantedAuthority> roles = new ArrayList<>();
        roles.add(new SimpleGrantedAuthority("ADMIN"));
        UserDetails userDet = new User(encontrado.getNombre(),encontrado.getClave(),roles);
        return userDet;

  1. Security Config
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    private UsuarioService userServiceDetails;
    private BCryptPasswordEncoder bcrypt;
    public BCryptPasswordEncoder passwordEncoder(){
        BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
        return bCryptPasswordEncoder;

    protected void configure(AuthenticationManagerBuilder auth) throws Exception {

    protected void configure(HttpSecurity http) throws Exception {
  1. Creación de usuarios
class PracticaSpringBootApplicationTests {
 private UsuarioService servicio;
 void contextLoads() {

Welcome to my blog about Software Development! I would like to invite you to learning with me 👨‍💻

Search all posts