Menu

Spring Boot Security #2| Remember Me

0 Comment

Spring Boot Security #2 | Remember Me y Cookie de Sesión

Mantener una sesión abierta y evitar iniciar sesión cada vez que visites una pagina es algo esencial. Conocido como “Remember Me”, es una opción en el formulario de login que permite crear una cookie en el navegador para poder mantener la sesión abierta.

Esta cookie creada por Spring Security tiene la siguiente composición:

  1. username: Identifica el usuario que inicio sesión.
  2. expirationTime: El tiempo de vida de la cookie creada.
  3. MD5 hash: Contiene el valor hash de los dos atributos anteriores, username y expirationTime. ademas agrega el passwords y la llave predefinida.

Importante: Como saben la cookie contiene el username y password, por lo cual si alguno de estos cambia la cookie dejara de servir.

La mayor vulnerabilidad de este metodo es que si la cookie es interceptada, puede ser usara por algún tercero.

Como usar Remember Me

Nos basaremos en el anterior tutorial y utilizaremos ese código como ejemplo. Si no lo has visto te invito a que lo mires o lo descargues del repositorio de github

Paso a Paso:

  1. Agrega la opción a tu formulario de login. en este caso en el archivo index.html
    Remember Me html

    Remember Me html

    Remember Me View

    Remember Me View

  2. Hay que indicarle a Spring Security que necesita generar la cookie “remember-me”. y borrar la cookie JSESSIONID cuando cierra sesión. Solamente hay que agregar la siguiente opción en configuración:
    .rememberMe().key("uniqueAndSecret")
    
    logout().
        deleteCookies("JSESSIONID")

    Remember Me Configuracion

    Remember Me Configuración

Por Defecto el parámetro es “remeber-me” y la duración de dos semanas. Pero esto puede ser cambiado fácilmente asi:

.rememberMe().key("uniqueAndSecret")
          .tokenValiditySeconds(60) //valor de la cookie en segundo ej, 60 => min
          .rememberMeParameter("name-del-input")

De esa manera se configura la cookie para recordar sesión. En el video tutorial les mostrare como verificar el uso de la cookie.

Repositorio: https://github.com/cruizg93/SpringBoot-Security-MySql/compare/SimpleRememberMe?diff=unified

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *