Saltar al contenido

Habilite la persistencia de la sesión con Spring Boot y Tomcat incorporado

Necesitamos tu apoyo para extender nuestras reseñas acerca de las ciencias de la computación.

Solución:

De acuerdo con la primavera, esto se arreglará en 1.3.0.M2 y eventualmente en 1.3.0.LIBERAR

Entonces todo lo que tienes que hacer es agregar la siguiente línea a tu application.properties expediente.

server.session.persistent=true

En versiones recientes de Spring, esto ha quedado en desuso y se ha reemplazado por:

server.servlet.session.persistent=true

Referencia https://github.com/spring-projects/spring-boot/issues/2490

Actualice Tomcat, Jetty y Undertow para serializar los datos de la sesión cuando la aplicación se detenga y vuelva a cargarlos cuando la aplicación se reinicie.

Las sesiones persistentes son opcionales; ya sea estableciendo persistentSession
en ConfigurableEmbeddedServletContainer o usando la propiedad
server.session.persistent=true.

Corrige gh-2490

Me acabo de dar cuenta de esto yo mismo. Cada vez que se inicia la aplicación, Spring genera un nuevo directorio temporal aleatorio en /tmp para el directorio base de Tomcat (p. ej. /tmp/tomcat.5990562997404648887.8080). Dado que usa una carpeta diferente en cada inicio, Tomcat no tiene forma de restaurar la sesión.

Esto se puede solucionar configurando su propio directorio base con server.tomcat.basedir=/tmp. Sin embargo, no considero que esto sea una solución, ya que requiere configurar un directorio específico del sistema operativo, así que abrí un error al respecto: https://github.com/spring-projects/spring-boot/issues/2490

Lo resolví usando Redis para conservar la información de las sesiones.

Todo lo que necesita hacer es especificar algunas opciones en el archivo application.yml:

server:
  servlet:
    session:
      persistent: true
spring:
  session:
    store-type: redis
  redis:
    host: localhost
    port: 6379
 ...

construir.gradle

    plugins 
       id 'java'
       id 'io.spring.dependency-management' version '1.0.6.RELEASE'
       id 'org.springframework.boot' version '2.1.3.RELEASE'
   
    ...
    // Spring Framework
    compile(
            'org.springframework.boot:spring-boot-starter-web',
            'org.springframework.boot:spring-boot-starter-data-jpa',
            'org.springframework.data:spring-data-redis',
            'org.springframework.boot:spring-boot-starter-security'
    )
    ...

Funciona perfecto con Spring Boot 2.1.3

Recuerda comunicar esta división si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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