Spring Boot Web 9/10 – Logout

29

En el tutorial anterior, revisamos el manejo de errores en Spring Boot. En este tutorial, revisaremos cómo configurar un Logout de OAUTH2 en nuestra aplicación. 🤓

Como lo mencionamos en el artículo inicial, el objetivo de esta serie de tutoriales es explicar cómo crear y configurar una aplicación web con Spring Boot, Webjars y autenticación OAUTH2 con Google. 🍃

Introducción

La autenticación de aplicaciones web con SSO de Google funciona de acuerdo al protocolo OAUTH2, por lo que se basa en autorización por tokens con caducidad. Sin embargo si un usuario no cierra sesión y sale de la página el token queda activo al menos unos minutos, lo cual representa un riesgo de seguridad CRSF, por lo que permitiremos al usuario cerrar su sesión y matar el token generado.

Dependencias

Las dependencias de Spring Security agregadas en el tutorial de configuración de OAUTH2 son suficientes para configurar el Logout en Spring Boot. Sin embargo, es necesario agregar la biblioteca Cookie Js desde Webjars, en orden de poder acceder a las coockies del navegador desde Javascript.

Recuerda que, como se explica en el tutorial de Webjars, al agregar Webjars Locator, no necesitaras referenciar la versión de la biblioteca Javascript al llamarla desde HTML.

Configuración

A nuestra clase WebSecurityConfig, le agregaremos un par de líneas en orden de permitir el Logout y su redireccionamiento así como especificar que se mataran el token activo al realizar esta petición (CRSF).

El método completo se vería de la siguiente manera.

Incluir Coockie Js en HTML

Una vez que nuestra dependencia Javscript de Coockie Js, fue agregada a nuestro proyecto desde Webjars, podemos incluirla en nuestro HTML llamando a un recurso interno. Nota que gracias a Webjars Locator, no incluimos la versión de la bibilioteca.

Post desde Javascript

Ya que tenemos la biblioteca de Coockie Js incluida, escribiremos el request POST a la URL de Logout que definimos en la configuración y además añadiremos mediante JQuery el Token a todos los request de tipo Post.

A continuación, referenciaremos dicha función desde nuestro botón de Logout, recuerda que puedes ver la manipulación de los archivos HTML mediante Thymeleaf, en el tutorial de su configuración.

Continúa con el tutorial

Recuerda que estar serie cuenta con muchos tutoriales, puedes encontrar el siguiente sobre empaquetamiento de un proyecto de Spring Boot a continuación:

Spring Boot Web 8 – Empaquetamiento

Repositorio de Github

Recuerda que puedes encontrar todo el código de esta aplicación en mi repositorio de Github (no olvides darle estrellita 🌟):

https://github.com/chuucks/Spring-Boot-Web-OAUTH2


Recuerda que el uso y configuración de Webjars en Spring Boot mostrado en este proyecto tiene únicamente fines ilustrativos para la comunidad de Codesolt.

Comments

comments