添加pom依赖支持
<!--session-->
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-core</artifactId>
</dependency>
在启动类上添加 redis和session的支持
maxInactiveIntervalInSeconds 设置session有效时长
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 60)
@GetMapping(value = "/hello")
public CommonReturn sayHello(userVO vo, HttpServletRequest request) {
HttpSession session =request.getSession();
if (session.getId().equals(session.getAttribute(session.getId()))){
return CommonReturn.create(session.getAttribute(session.getId()));
}else {
return CommonReturn.create("凭证过期,请重新登陆");
}
}
关于储存在redis中的session 当session过期后如何删除,这个问题可以从一下几个方面进行。
- 当用户主动退出,在业务层进行删除。这不比多说。
- 用户没有主动退出操作,此时存储的session到了过期时间,可以借助redis的淘汰策略
- 即多长时间未访问删除策略。
- 利用SessionEventHttpSessionListenerAdapter 监听session销毁事件处理
2018-12-30 16:53:05.419 INFO 7176 --- [enerContainer-3] c.e.d.c.redisConfig.SessionListener : 新的session创建--->> 70b0638f-5216-4208-9301-ce31dd3f00fd 2018-12-30 16:54:26.079 INFO 7176 --- [enerContainer-4] c.e.d.c.redisConfig.SessionListener : 有session销毁 --->> 70b0638f-5216-4208-9301-ce31dd3f00fd