Estás viendo una versión antigua de esta página. Ve a la versión actual.

Comparar con el actual Ver el historial de la página

Versión 1 Siguiente »

El funcionamiento general de la gestión de sesiones se explica en esta guía: Gestión de sesiones web

Para el backend, hemos hecho una librería que contiene lo necesario para leer y escribir en nuestra tabla de sesiones, siguiendo la misma estructura que se indica en la guía anterior.

Para añadirla a nuestro proyecto, en primer lugar tendremos que añadir la dependencia:

       <!-- Session FDWJS -->
       <dependency>
           <groupId>es.um.atica.fundewebjs.fundewebjs-api</groupId>
           <artifactId>fundewebjs-session</artifactId>
           <version>${fdwjs.version}</version>
       </dependency>

Además en la clase inicial de nuestra aplicación, tendremos que añadir las anotaciones @EnableJpaRepositories y @EntityScan, indicando los mismos paquetes que tenemos en @SpringBootApplication, de modo que quede así:

@SpringBootApplication( scanBasePackages = {
		"es.um.atica.backendprueba", "es.um.atica.fundewebjs",
} )
@EnableJpaRepositories( basePackages = {
		"es.um.atica.backendprueba", "es.um.atica.fundewebjs",
} )
@EntityScan( {
	"es.um.atica.backendprueba", "es.um.atica.fundewebjs",
} )
public class BackendpruebaApplication {

	public static void main(String[] args) {
		SpringApplication.run(BackendpruebaApplication.class, args);
	}

}

Sustituyendo, evidentemente, backendprueba por el nombre de paquete de nuestro proyecto.


Una vez hecho esto ya podremos usarla, sólo tendremos que utilizar la clase sessionService, incluyéndola con @Autowired:

	@Autowired
	private SessionService sessionService;

Guardar sesión

Para guardar una sesión, tanto si es nueva como si es para sobrescribir una ya existente, utilizaremos el método guardarSesion, al que le pasaremos el id de sesión, el id del usuario, y el contenido de la sesión, ya sea como String o como array de bytes:

// Definición de la función
public void guardarSesion( String id, String identificadorUsuario, byte[] contenidoSesion )

// Llamada
sessionService.guardarSesion(idSesion, idUsuario, contenido);

Cada vez que guardamos una sesión, ya sea nueva o sobrescrita, se pone la duración de la misma a media hora, es decir, si pasa media hora desde el momento que la guardamos, caduca.

Obtener sesión

Para obtener una sesión, utilizamos getSesion o getSesionStr, pasándoles el id de sesión y el id de usuario. La única diferencia es que la primera devuelve un array de bytes, la segunda un String:

// Definición de las funciones
public byte[] getSesion( String id, String identificadorUsuario )
public String getSesionStr( String id, String identificadorUsuario )

// Llamada
byte[] sesion = sessionService.getSesion(idSesion, idUsuario);
String sesion = sessionService.getSesionStr(idSesion, idUsuario);

Borrar sesión

Si queremos borrar una sesión explícitamente, llamaraemos a borrarSesion pasándole id de sesión e id de usuario. La operación de borrado se ejecutará de forma asíncrona, por lo que la ejecución seguirá y se evitará el tiempo de espera a que se produzca el borrado.

// Definición de la función
public void borrarSesion( String id, String identificadorUsuario )

// Llamada
sessionService.borrarSesion(idSesion, idUsuario);


  • Sin etiquetas