使用 Spring 的@EnableRedisHttpSession时,如何在控制器中获取会话或 redis 密钥的到期时间?



>我正在使用Spring Boot和Spring session。这是我的简单配置。

@EnableRedisHttpSession
public class Config {}

Spring Boot 默认创建一个RedisConnectionFactory,我将相应的hostport信息等放在application.yml文件中(为简洁起见删除(

我还添加了与安全相关的信息(为简洁起见,从此处删除了它(。

现在这是我的控制器。

@RestController
public HomeController {
@GetMapping("/hello")
public String home(HttpSession session){
// I need redis's key's expiration time. or session id's expiration time. 
// how can I get this? Should I use HttpSession?
return "hello";
}
}

如何在控制器中获取会话过期时间? 或者更确切地说,如何获取 Redis 密钥的到期时间?

你需要使用 HttpSession

您可以将其作为参数添加到控制器方法中,如下所示(也显示在有问题中(。

@GetMapping("/hello")
public String home(HttpSession session){
// I need redis's key's expiration time. or session id's expiration time. 
// how can I get this? Should I use HttpSession?
int ttl = session.getMaxInactiveInterval(); // this should give redis TTL
return "hello";
}

你可以使用 HttpSession 的 getMaxInactiveInterval 方法来获取 redis 的 TTL 值,如上面的代码所示。

相关内容

  • 没有找到相关文章

最新更新