Class AutenticacionService
Proporciona métodos específicos para el inicio de sesión de empresas y empleados, validando credenciales cifradas y estados de cuenta (actividad y vigencia de contratos).
Tras una autenticación exitosa, genera tokens de acceso seguros (JWT) enriquecidos
con los Claims necesarios para la autorización basada en roles dentro de la API.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.springframework.security.crypto.password.PasswordEncoderprivate final EmpleadoRepositoryprivate final EmpresaRepositoryprivate final ServicioJwt -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionloginEmpleado(PeticionLoginDTO peticion) Realiza el proceso de autenticación integral para un Empleado.loginEmpresa(PeticionLoginDTO request) Realiza la autenticación centralizada para el perfil de Empresa.
-
Field Details
-
empresaRepository
-
empleadoRepository
-
codificadorPassword
private final org.springframework.security.crypto.password.PasswordEncoder codificadorPassword -
servicioJwt
-
-
Constructor Details
-
AutenticacionService
public AutenticacionService()
-
-
Method Details
-
loginEmpresa
Realiza la autenticación centralizada para el perfil de Empresa.El proceso verifica la existencia de la cuenta por email y valida la contraseña mediante el codificador configurado. Si el acceso es válido, se emite un token JWT que contiene la identidad de la empresa y su rol administrativo.
- Parameters:
request- ObjetoPeticionLoginDTOcon las credenciales de la empresa.- Returns:
RespuestaLoginDTOque incluye el token de sesión y los datos de perfil básicos.- Throws:
RuntimeException- Si el correo no existe o la contraseña es errónea.
-
loginEmpleado
Realiza el proceso de autenticación integral para un Empleado.Además de la validación estándar de credenciales, este método aplica reglas de negocio críticas sobre el estado de la cuenta:
- Verifica que el flag
activosea verdadero. - Comprueba que la
fechaBajaContratono haya sido superada (Contrato vigente).
Si todas las validaciones son exitosas, emite un token JWT enriquecido con el rol específico (EMPLEADO, SUPERVISOR), el ID del empleado y el ID de su empresa.
- Parameters:
peticion- ObjetoPeticionLoginDTOcon el email y password del trabajador.- Returns:
RespuestaLoginDTOcon el token de acceso y la información de perfil para el frontend.- Throws:
RuntimeException- Si las credenciales fallan o si el empleado tiene el acceso bloqueado por cese laboral.
- Verifica que el flag
-