检测用户是否已通过身份验证

时间:2014-03-22 19:16:55

标签: jsp java-ee servlets jboss

我试图允许我的网站用户对自己进行身份验证,以便能够导航我的网站。目前我在JBOSS AS7上进行了基于表单的身份验证,并且工作正常。所以,现在我想解决一些问题。我将登录页面设置为/login.jsp,我注意到经过身份验证的用户可以再次导航到此页面并再次登录。我想通过检测用户是否经过身份验证来解决这个问题,如果他是,我想将他重定向到另一个页面(因为登录页面对经过身份验证的用户没有意义)。 我怎么能用JSP做到这一点?我可以直接在login.jsp上执行此操作,还是需要中间的servlet?

另外(问题一部分)我该如何退出用户?

非常感谢!

1 个答案:

答案 0 :(得分:1)

你有几个问题,这让我觉得你应该做的第一件事是花费5-6个小时通过入门J2EE和java集合/核心java教程。

通常网站商店在会话中登录了雕像。所以你首先想到的是session.getAttribute(" user");

这可能指向布尔值(登录或未登录)或更好的类,其中包含有关当前用户的信息,其中一个可以登录状态。

在日志页面中如果已经登录 - 谷歌页面重定向使他们转到另一个页面(如果检查在渲染任何输出之前 - 没有javascript / css任何重定向工作)

对于网站的其余部分,最有效的方法是使用过滤器检查用户是否已登录,并遵循以下规则: 1.如果用户在/ login或/ logout或/ publicArea什么都不做(无需检查是否已登录) 2.否则如果没有登录重定向到登录页面

这种方式不需要在所有jsps中添加此代码。可以将Java过滤器配置为针对*(所有)请求进行调用。

要注销,只需删除会话属性或将pojo中的布尔值设为false。

Java session

Redirecting a request using servlets and the "setHeader" method not working

Java EE tutorial