我正在使用基于表单的身份验证来保护我的网页,或者至少我会很快。
我最近才了解到这方面的细节,之前有我自己的自己开发的系统(这是一个只有5人登录的内部系统,但如果可能的话,我仍然希望以'Java Standard'的方式做到这一点。 )。
我想在有人登录我的应用程序时在会话中存储多个对象,就像我目前在我自己开发的实现中一样。但是,通过这个容器管理的安全性,我很难掌握如何做到这一点,或者至少是被认为是最佳实践的方式。
在我尝试导航到某个页面并重定向到登录页面后,正确登录,然后我会逻辑上被带到我的初始目的地,这是正确的。那么我最好的方法是将一个UserBean添加到会话中吗?我应该在过滤器中进行吗?或者我可以在每次登录尝试后重定向到servlet吗?
非常感谢任何指导。感谢。
答案 0 :(得分:1)
对于这种情况,servlet过滤器几乎肯定是正确的解决方案。为了确保过滤器的内容每次登录只运行一次,我建议设置如下:
if(session.getAttribute(firstLoginFlag) == null){
//load UserBean
//do whatever else
session.setAttribute(firstLoginFlag, true);
}
chain.doFilter(request, response);
这通常比重定向到servlet更好,因为它使过滤器独立于应用程序中的任何其他页面或逻辑,您不必在其中放入任何逻辑,以便在加载后将用户推送到其他位置UserBean和其他任何东西都已完成。