permisos - spring security tutorial
Registro, creación y gestión de cuentas de usuario de Spring Security. (3)
He estado buscando el uso de Spring Security para la autenticación / autorización de mi aplicación web (esto será basado en JDBC).
Sin embargo, un componente central parece estar fuera de mi perspectiva. ¿Cómo me registro / creo nuevos usuarios? ¿Hay una API lista para usar para eso?
¿Necesito escribir el registro y la administración de usuarios desde cero? Las cosas que debo hacer incluyen: - Registrar un nuevo usuario - Restablecer contraseñas - Enviar un correo electrónico a un usuario para activar su cuenta - Enviar un correo electrónico a un usuario para restablecer su cuenta.
Gracias de antemano.
Echa un vistazo a mi respuesta here .
"He implementado un proyecto JAVA para este caso de uso. Es de código abierto, basado en Spring-Security. Una versión de lanzamiento está en Maven-Central, por lo que no es necesario compilarlo, sino que puede buscarlo como maven- Dependencia a tu proyecto!
<dependency>
<groupId>com.ohadr</groupId>
<artifactId>authentication-flows</artifactId>
<version>1.5.0-RELEASE</version>
</dependency>
Que yo sepa, Spring Security no tiene soporte incorporado para la creación y el registro de nuevos usuarios. Usted tendrá que gestionar esto usted mismo. Sin embargo, tiene soporte de correo electrónico. Compruebe aquí para más sobre esto.
Uso Spring Security en mi proyecto. El marco no tiene una API para la creación o el registro de usuarios como usted lo solicitó. Para que Spring Security sea genérico y utilizable en múltiples marcos, solo puede llevarlo lejos antes de que tenga que escribir código personalizado. Realmente no puede obtener una respuesta más específica sobre un marco o herramienta para usar porque en este punto solo usará los marcos que ya está utilizando de todos modos.
Si lo configuró para usar usuarios y roles en su base de datos, desde su capa de acceso a datos crearía un registro en la tabla de usuarios o actualizaría una contraseña (preferiblemente almacenada como un hash) en ese registro. Y como dijo Aravind, Spring proporciona soporte por correo electrónico .
Si realmente quieres ver una forma de hacerlo: estoy usando Spring MVC, JSP e Hibernate. Utilizo las etiquetas de formulario de Spring en una JSP para vincular un nuevo formulario de usuario a un objeto Person, y mi método de controlador pasa ese objeto Person a mi Dao para persistir.
La firma del método del controlador se ve así ...
@RequestMapping(value = "/newUser", method = RequestMethod.POST)
public ModelAndView createNewUser(final @Valid @ModelAttribute Person user,
final BindingResult result,
final SessionStatus status,
final @RequestParam(value = "unencodedPassword", required = true) String password) {
...
user.getRoles().add(new Role(user, Role.APPLICATION_ROLE.ROLE_USER));
userDao.createNewUser(user);
...
}
y mi PersonDao utilizaría Hibernate para persistir al usuario así.
@Transactional
public void createNewUser(Person user)
{
Session session = sessionFactory.getCurrentSession();
session.save(user);
session.flush();
}