从RealmBase对象访问sessionid

时间:2015-01-31 18:34:11

标签: java tomcat sessionid jdbcrealm

是否可以从RealmBase.athenticate方法访问会话ID?我需要来自我的自定义领域类,以便将与会话相关联的附加信息存储到数据库中,并在以下请求期间检索它。我正在使用Tomcat 8.谢谢!

1 个答案:

答案 0 :(得分:0)

没有

身份验证不需要使用会话,因此未将其烘焙到API中。身份验证也应该与会话管理分开,所以它再次没有被纳入API。

你可能仍然可以这样做,但它需要一些技巧。

  1. 编写一个使用包含Request对象的ThreadLocal的Valve。
  2. 在阀门链中的AuthenticationValve之前注册阀门。
  3. 在该Valve中,将用户的请求填入ThreadLocal,然后调用链。
  4. 在自定义Realm中,从ThreadLocal
  5. 中获取对象
  6. 请记住在调用链返回后从ThreadLocal删除请求...即使抛出异常。