在 Shiro 中传输 session ID 的替代方法

Alternative ways of transmitting session ID in Shiro

我不确定我是否使用了正确的术语,但我正在查看文档并尝试确定我是否可以使用 Shiro 实现以下目标:-

  1. 允许用户通过 JSON
  2. 的 post 登录
  3. 检查凭据并向用户发送 session ID(可能在 header 上)
  4. 对于每个后续请求,发送在请求的登录响应中传输的 session ID header
  5. 使用将 session 数据存储在数据库中的 SessionDAO(从而创建 "sessionless" 应用程序)。

我知道如何创建 session DAO,但我不确定如何在 Web 应用程序上设置当前主题。这可能吗?有什么理由不这样做吗?

如果您需要管理一个 session 那么该应用程序并不 session 少。也就是说,看看 [DefaultWebSessionManager].(https://github.com/apache/shiro/blob/master/web/src/main/java/org/apache/shiro/web/session/mgt/DefaultWebSessionManager.java)。不过,如果您无论如何都要经历设置 header 的麻烦,您可以只设置 cookie header,并按原样使用此实现。