3.0 / 5
Hola buenas a todos, hoy les quiero compartir algo que sirve, y mucho, a la hora de manejar datos de un usuario que hizo login en nuestra aplicación jhipster. Lo que nos permite trabajar con esos datos y agregar mas lógica a alguna funcionalidad que necesitemos.
Tenemos dos formas de acceder a datos de un usuario logeado, una forma es llamar a “SecurityUtils.getCurrentUserLogin();”, esta es un útil que nos proporciona jhipster, esta seria la primera forma de obtener datos del usuario, por ejemplo en el siguiente código vemos una forma de usarlo.
public EmpresaDTO save(EmpresaDTO empresaDTO) {
log.debug("Request to save Empresa : {}", empresaDTO);
Empresa empresa = empresaMapper.toEntity(empresaDTO);
User user = new User();
Optional<String> us = SecurityUtils.getCurrentUserLogin();
user = this.userRepository.findOneByLogin(us.get()).get();
empresa.setUser(user);
empresa = empresaRepository.save(empresa);
EmpresaDTO result = empresaMapper.toDto(empresa);
empresaSearchRepository.save(empresa);
return result;
}
Como veremos seria una forma de obtener solo el nombre de usuario “login” para buscarlo en la base de datos y luego usar ese usuario y settearlo en un atributo de la entidad Empresa que se relacione con el usuario.
Otra forma es agregar a nuestro servicio el import de “UserService”
private final UserService userService;
public EmpresaServiceImpl(EmpresaRepository empresaRepository, UserService userService) {
this.empresaRepository = empresaRepository;
this.userService = userService;
}
Luego en el método que nos haga falta podrÃamos hacer lo siguiente:
userService.getUserWithAuthorities().get().fieldName();
Podremos obtener los datos, atributos, del usuario:
User Id : userService.getUserWithAuthorities().get().getId();
First Name : userService.getUserWithAuthorities().get().getFirstName();
Last Name: userService.getUserWithAuthorities().get().getLastName();
For Email : userService.getUserWithAuthorities().get().getEmail();
For Username(login)Â : userService.getUserWithAuthorities().get().getlogin();
De esta forma podremos obtener cualquier atributo correspondiente al usuario y poder trabajar con ellos y agregar mas lógica a algunos métodos que nos haga falta usar datos del usuario.
Por ejemplo obtener el email del usuario para luego enviar algún informe:
String userEmail = userService.getUserWithAuthorities().get().getEmail();
Ambas formas son correctas y pueden elegir las que les quede mas cómodo.
Espero les sea de utilidad este articulo. Saludos.