0

我正在使用基于表单的身份验证来保护我的页面,或者至少我很快就会这样做。

我最近才知道这方面的细节,之前有我自己的系统(这是一个只有 5 人登录的内部系统,但如果可能的话,我仍然想以“Java 标准”的方式进行操作)。

每当有人登录我的应用程序时,我想在会话中存储几个对象,就像我目前在我自己的实现中所做的那样。然而,有了这个容器管理的安全性,我很难掌握如何做到这一点,或者至少是被认为是最佳实践的方式。

在我尝试导航到一个页面并被重定向到登录页面后,正确登录,然后我被逻辑地带到我的初始目的地,这是正确的。对我来说,向会话添加 UserBean 的最佳方式是什么?我应该在过滤器中进行吗?还是可以在每次登录尝试后重定向到 servlet?

非常感谢任何指导。谢谢。

4

1 回答 1

1

servlet 过滤器几乎肯定是这种情况的正确解决方案。为了确保过滤器的内容每次登录只运行一次,我建议设置如下:

if(session.getAttribute(firstLoginFlag) == null){
    //load UserBean
    //do whatever else
    session.setAttribute(firstLoginFlag, true);
}
chain.doFilter(request, response);

这通常比重定向到 servlet 更好,因为它使过滤器独立于应用程序中的任何其他页面或逻辑,一旦加载 UserBean 和任何其他东西齐全。

于 2013-08-05T12:20:24.817 回答