Skip to content

LordFaders/SistemaDeVentasConSpringSecurity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SistemaDeVentasConSpringSecurity

Notas del proyecto:

En la línea 44 del login.jsp parecerá raro que el id="email" y type="email" no conincidan con el name="username" Para referirnos a esto iremos a la clase UserDetailsServiceImpl.java en el package securingweb: esta diferencia entre id y name se debe a que "engañamos" a Spring security con el método loadByUserName de dicha clase instanciando un Usuario pero llamando al método findByEmail del usuarioRepository. Entonces lo que se hace es asignarle el userName al email para que Spring lotome como nombre de usuario y así pueda hacer la validación en el login.

Otro punto a tener en cuenta: Los roles se insertan mediante query directamente en la tabla roles de la base de datos:

INSERT INTO `javag6spring`.`roles` (nombre) VALUES ('ROLE_USER');
INSERT INTO `javag6spring`.`roles` (nombre) VALUES ('ROLE_ADMIN');

Como se ve en este caso se insertaron dos roles, de Usuario y de Admin. En un momento creé relaciones entre usuarios y roles directamente en la tabla roles_usuarios de la BD. Esto es válido pero no para este sistema ya que está programado para que el mismo haga la relación automáticamente una vez logueado. Esto se puede analizar en UsuarioService en el método guardarUsuario. Los roles se asignan con el método de la línea 31. Revisando el mismo UsuarioService, vemos que en la línea 26 estamos encriptando la password con el método BCrypt de Spring Security.

Por último, en UsuarioController, líneas 55 a 60 pueden encontrarla "receta" para asignar otros roles a los distintos usuarios. Nótese que un usuario podría tener más de un rol por lo que se establece una relación @ManyToMany entre ambas entidades:

ASIGNAR OTROS ROLES:
	1º crear jsp con selectores de usuarios y roles
	2º capturar el usuario y el rol en el controlador de usuario
	3º buscar usuario y rol por id a la BD
	4º agregar el rol capturado usuario.getRoles().add(Rol) a la lista de roles del usuario 
	5º guardar el usuario

Quedo atento a comentarios, dudas y correcciones que puedan surgir de este pequeño instructivo que hice a modo de ayuda memoria personal pero que al mismo tiempo les puede ayudar.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages