0
是否可以从RealmBase.athenticate方法访问会话ID?我需要从我的自定义领域类中存储与数据库关联的其他信息,并在以下请求期间检索它。我正在使用Tomcat 8.谢谢!从RealmBase对象访问sessionid
是否可以从RealmBase.athenticate方法访问会话ID?我需要从我的自定义领域类中存储与数据库关联的其他信息,并在以下请求期间检索它。我正在使用Tomcat 8.谢谢!从RealmBase对象访问sessionid
编号
认证不需要使用会话,因此它不会被烘焙到API中。身份验证也应该从会话管理中分离出来,所以它也不会被烘焙到API中。
你可能仍然可以做到这一点,但它需要一些欺骗。
ThreadLocal
的Valve。AuthenticationValve
之前注册阀门。ThreadLocal
,然后调用链。Realm
中,从ThreadLocal
中获取对象。ThreadLocal
中删除请求...即使发生异常。
谢谢你的回应,但似乎不工作。我已经用2个具体的附加类覆盖了2个方法RealmBase.authenticate(String userId,String accessToken)和FormAuthenticator.authenticate(Request request,HttpServletResponse response)。有两个不同的问题:1)似乎2种方法使用不同的线程2)在一些调用之后,重用了ThreadId,因此ThreadLocal在线程之间共享,导致信息重叠。 :-(请问你能给我一些例子吗? – 2015-02-03 00:17:40
我不会为你写代码,它只是一个建议什么可以工作。是的,线程被重新使用......这就是为什么我包括步骤#5上面:它会删除应该是私密的信息如果您遇到信息泄漏,这是因为您没有执行上述第5步 – 2015-02-03 20:53:03
如果没有任何东西,认证器阀门会自动添加到Tomcat的阀门链中您需要明确配置您的''内的认证阀,并确保阀链中的*后*与处理ThreadLocal的阀相比*更晚*。 –
2015-02-03 20:54:09