如何获取Spring中所有会话的列表?

时间:2018-03-28 15:54:51

标签: java spring session spring-boot

我正在使用Spring Boot 2和Gradle开发Web应用程序。我目前实现了一个自定义记忆机制( WITHOUT Spring Security),我还添加了一个系列cookie,如here所述。

现在我想在令牌不匹配的情况下使所有用户的会话无效。我会得到用户的所有会话(我保存的Bean" userSession"属性)。我该怎么办?

PS:我使用Spring Security。

2 个答案:

答案 0 :(得分:0)

您必须创建一个自定义HttpSession持有者对象,该对象将保存您可以根据您的条件进行迭代和无效的活动会话。

write: write-service

答案 1 :(得分:0)

Spring 中有一个名为 Spring Session 的模块,可以轻松管理所有实际会话。 Link for Spring Session documentation

要基本上运行它,您必须在 pom.xml 中添加依赖项:

    <dependency>
        <groupId>org.springframework.session</groupId>
        <artifactId>spring-session-jdbc</artifactId>
    </dependency>

并向 application.properties 添加一些配置属性:

spring.session.store-type=jdbc
spring.session.jdbc.initializer.enabled=true
spring.session.jdbc.schema=classpath:org/springframework/session/jdbc/schema-qlserver.sql 
spring.session.jdbc.table-name=SPRING_SESSION

在“spring.session.jdbc.schema=”中,您可以选择自己的数据库类型或使用嵌入式数据库(如 H2)。 Spring 将根据内置脚本自动为会话创建表,会话将在其中存储。