Se agrega el servicio para saber los datos del usuario autenticado

parent 12f6c8ca
......@@ -30,5 +30,9 @@ public interface DaoUzyTUsuario extends JpaRepository<ModelUzyTUsuario, Long> {
ModelUzyTUsuario findByEmail(@Param("email") String email);
@Query("SELECT u FROM ModelUzyTUsuario u WHERE u.uzytusuario_nombres = :username")
ModelUzyTUsuario findByUsername(@Param("username") String username);
}
package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data;
@Data
public class DtoUserLogeado {
private Long uzytusuario_id;
private String uzytusuario_clave;
private String uzytusuario_nombres;
private String uzytusuario_apellidos;
private String uzytusuario_email;
private String uzytusuario_tipo_user;
private String uzytusuario_email_institucional;
private String uzytusuario_telefono_fijo;
private String uzytusuario_telefono_celular;
private String spriden_id;
}
package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data;
import java.util.Date;
@Data
......@@ -31,5 +30,6 @@ public class DtoUzyTUsuario {
private String uzytusuario_clave_tmp;
private String spbpers_name_prefix;
private String spbpers_sex;
private String uzytusuario_campus;
private String uzytusuario_departamento;
}
......@@ -94,6 +94,12 @@ public class ModelUzyTUsuario {
@Column(name = "spbpers_sex")
private String spbpers_sex;
@Column(name = "uzytusuario_campus")
private String uzytusuario_campus;
@Column(name = "uzytusuario_departamento")
private String uzytusuario_departamento;
public String getUzytusuario_tipo_user() {
return uzytusuario_tipo_user;
}
......
package ec.edu.espe.movilidad.MovilidadWS.Security;
import com.fasterxml.jackson.databind.ObjectMapper;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUserLogeado;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder;
......@@ -43,6 +45,19 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
}
}
if (request.getRequestURI().equals("/api/v1.0/usuarioLogeado")) {
String username = SecurityContextHolder.getContext().getAuthentication().getName(); //Se obtiene el nombre del uuario autenticado
DtoUserLogeado userInfo = jwtUserDetailsService.getUserInfoByUsername(username);
//Se devuelve los datos en formato JSON
ObjectMapper objectMapper = new ObjectMapper();
String jsonResponse = objectMapper.writeValueAsString(userInfo);
response.setContentType("application/json");
response.getWriter().write(jsonResponse);
return;
}
filterChain.doFilter(request, response);
}
......
package ec.edu.espe.movilidad.MovilidadWS.Security;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTUsuario;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUserLogeado;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTUsuario;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.User;
......@@ -33,5 +34,25 @@ public class JwtUserDetailsService implements UserDetailsService {
.build();
}
public DtoUserLogeado getUserInfoByUsername(String username) {
ModelUzyTUsuario user = userRepository.findByEmail(username);
if (user == null) {
throw new UsernameNotFoundException("Usuario no encontrado");
}
DtoUserLogeado userInfo = new DtoUserLogeado();
userInfo.setUzytusuario_id(user.getUzytusuario_id());
userInfo.setUzytusuario_clave(user.getUzytusuario_clave());
userInfo.setUzytusuario_nombres(user.getUzytusuario_nombres());
userInfo.setUzytusuario_email(user.getUzytusuario_email());
userInfo.setUzytusuario_email_institucional(user.getUzytusuario_email_institucional());
userInfo.setUzytusuario_apellidos(user.getUzytusuario_apellidos());
userInfo.setUzytusuario_telefono_celular(user.getUzytusuario_telefono_celular());
userInfo.setUzytusuario_telefono_fijo(user.getUzytusuario_telefono_fijo());
userInfo.setSpriden_id(user.getSpriden_id());
return userInfo;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment