调用方法“安全实用程序.get子();”是否总是会命中 redis 数据库?

我正在我的项目中实现一个 redis-shiro 会话管理功能,目前我对 Shiro 和 Redis 的信息很少。


我想知道调用以下内容是否会每次都命中 redis 数据库,以检查 redis 数据库中是否存在任何会话 Id。


服务中的代码


Subject currentUser = SecurityUtils.getSubject();

 Session session = currentUser.getSession();

控制器中的代码:


 public String getSomrthing(@CookieValue("JSESSIONID") String fooCookie){

       callingSomeServiceMethod(fooCookie);

       return "It does not matter";

   }

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


Subject currentUser = SecurityUtils.getSubject();

   if(currentUser.getId.equals(fooCookie)){

        //.....Some Code 

       //.....Some Code

  }


墨色风雨
浏览 90回答 1
1回答

慕码人2483693

会话将为每个请求最多查找一次,具体取决于您配置的任何其他缓存。但是,您不会直接从控制器管理/查找会话Id。所有这些逻辑都是透明的,并由 Shiro 和/或您的 servlet 容器的会话管理处理。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java