如果我知道 Apache Shiro 中的会话 ID 而无需使用任何哈希映射,如何验证会话 ID?

How to validate session ID if I know the session ID in Apache Shiro without the use of any hash maps?

我知道可以使用 hashmap 验证会话 ID 并将其附加到侦听器。还有一种已弃用的方法,仅使用会话 ID 字符串进行验证。

我想知道是否有另一种方法可以在不使用任何散列映射的情况下验证 Apache Shiro 中的已知会话 ID?

另一种解决方案是使用传递的会话 ID 创建主题,然后尝试获取该主题的会话。如果会话存在,那么它将 return 其 session 否则 null。例如,下面的方法可用于使用传递的会话 ID 验证 Apache Shiro 的会话。

 public static boolean isSessionValid(String sessionId){  
      Subject requestedSubject = new Subject.Builder().sessionId(sessionId).buildSubject();
      return !(requestedSubject.getSession(false) == null);
  }