gpt4 book ai didi

java - 调用方法 "SecurityUtils.getSubject();"是否总是会命中 redis 数据库?

转载 作者:IT王子 更新时间:2023-10-29 06:12:33 29 4
gpt4 key购买 nike

我正在我的项目中实现 redis-shiro session 管理功能,目前我对 Shiro 和 Redis 的了解非常少。

我想知道调用下面是否会每次都访问redis数据库来检查redis数据库中是否存在任何sessionId。

服务代码

Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();

Controller 中的代码:

 public String getSomrthing(@CookieValue("JSESSIONID") String fooCookie){
callingSomeServiceMethod(fooCookie);
return "It does not matter";
}

我们是否必须像下面那样在我们的服务中手动匹配 sessionId,或者 Shiro 会自动匹配它,因为我的应用程序将在多实例环境中运行。?

Subject currentUser = SecurityUtils.getSubject();
if(currentUser.getId.equals(fooCookie)){
//.....Some Code
//.....Some Code
}

最佳答案

session 最多会为每个请求查找一次,较少取决于您配置的任何额外缓存。

不过,您不会直接从 Controller 管理/查找 sessionId。所有这些逻辑都是透明的,并由 Shiro 和/或您的 servlet 容器的 session 管理处理。

关于java - 调用方法 "SecurityUtils.getSubject();"是否总是会命中 redis 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55455383/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com