依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-jdbc</artifactId>
</dependency>
配置:
spring:
session:
store-type: redis
timeout: PT30M
redis:
host: 192.168.2.22
port: 6397
通过sessionId删除指定session:
public void removeSession(HttpServletRequest request, String sessionId) {
HttpSession session = request.getSession();
if (Objects.equals(sessionId, session.getId())) {
session.invalidate();
return;
}
Object sessionRepositoryAttribute = request.getAttribute(SessionRepositoryFilter.SESSION_REPOSITORY_ATTR);
if (sessionRepositoryAttribute == null) {
return;
}
SessionRepository<?> sessionRepository = (SessionRepository<?>) sessionRepositoryAttribute;
if (sessionRepository.findById(sessionId) == null) {
return;
}
sessionRepository.deleteById(sessionId);
}
获取sessionId:
public void logout(HttpServletRequest request) {
String sessionId = request.getSession().getId();
}