存储和不同的用户无效的Java HttpSession中(Store and invalidate

2019-08-03 18:35发布

好的。 我想要做的是能,​​当我更新用户,无效的任何会议,他们目前都在以迫使凭证的刷新。 我不关心能够直接访问指定会话的用户数据。 理想情况下,我也可以通过类似的方式限制用户访问一个会话。

我试图做的是使用用户名作为关键和HttpSession中的价值创造一个HashMap(我的实际建立是一个涉及多一点,但反复看似莫名其妙的故障后,我煮下来到这个简单的测试)。 但是,每当我试图告诉检索HttpSession中无效,似乎目前的[管理员]会议上无效。 是的HttpSession息息相关的,当前的请求?

还是有一种完全不同的方式来处理呢?

如果碰巧没关系,我使用码头6.1.26。

Answer 1:

有没有直接的方法。 我能想到的最简单的方法是保持一个标志数据库(或cahche)上,并检查每个请求它的有效性。

或者你可以实现一个HTTP会话监听器,并保持可访问和无效用户会话的HashMap中。

我还没有尝试过任何这些了,所以我不知道有任何性能问题。 但是,它应该是为大多数应用所接受。



Answer 2:

好了,据我所知,有没有办法解决它。 使用如我所料的请求作用域的bean没有工作(虽然它确实给了我很好的认识到如何操作春天,拦截字段访问)。 最后我用一个肮脏的标志我SessionHandler(会话作用域的bean)有一个非常高的优先级方面的检查,如有必要,调用无效()在用户的下一个请求的会话。 我最终仍有我所有的SessionHandlers用SessionManager和@PreDestroy方法来注销他们为了避免一堆地图空条目的注册。



文章来源: Store and invalidate Java HttpSession from different user