Utilizo Spring Security en mi proyecto. El marco no tiene una API para la creación o el registro del usuario como usted solicitó. Para que Spring Security sea genérico y utilizable en múltiples marcos, solo puede llevarlo hasta el momento antes de que tenga que escribir un código personalizado. Realmente no se puede obtener una respuesta más específica acerca de un marco o herramienta para utilizar, porque en este punto simplemente usarás los marcos que ya estás usando de todos modos.
Si lo ha configurado 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 email support.
Si realmente quiere ver una forma de hacerlo: estoy usando Spring MVC, JSP e Hibernate. Utilizo las etiquetas de formulario de Spring en un 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 persistirlo.
El método de firma del controlador se parece a esto ...
@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 usaría Hibernate que persista el usuario al igual que
@Transactional
public void createNewUser(Person user)
{
Session session = sessionFactory.getCurrentSession();
session.save(user);
session.flush();
}
http://stackoverflow.com/questions/23562266/create-account-forgot-password-and-change-password – OhadR