Skip to content

Autenticacion con Google OAuth 2.0

bianca.lopez requested to merge feature/Autenticacion_OAuth2 into pft

CAMBIOS REALIZADOS:

RestAutenticacionController -solicitarLoginGoogle(@Valid @RequestBody GoogleLoginRequestDTO dto) : Punto de entrada para la generación del enlace de autenticación externa. Delega la validación de existencia del usuario y la construcción del URI al servicio.

-callbackGoogle(@RequestParam("code") String code): Intercepta la redirección de Google con el authorization_code. Invoca la lógica de intercambio de tokens y devuelve la DTO con el JWT de SIENEP.

AutenticacionService -generarLinkLoginGoogle(String email): Comprueba que el usuario exista en usuarioRepository y que su estado sea activo. Ensambla la URL del endpoint de autorización de Google (https://accounts.google.com/o/oauth2/v2/auth) configurando el parámetro response_type=code, los scopes requeridos (openid, email, profile) y el login_hint.

-loginConCodigoGoogle(String code): Encargado del canal Server-to-Server. Ejecuta una petición GoogleAuthorizationCodeTokenRequest hacia Google enviando el client_id, client_secret y el code capturado. Extrae el id_token (JWT emitido por Google) contenido en la respuesta HTTP para su posterior validación.

-loginConGoogle(String googleToken): Instancia el componente GoogleIdTokenVerifier para validar la firma digital de Google y asegurar que la audiencia coincida con nuestro client_id. Obtiene las credenciales del payload (email), recupera las autoridades/permisos del UserDetails del sistema local mediante UserDetailsService y emite el JWT propio con JwtUtil.generateToken().

Merge request reports

Loading