2011-03-28 89 views
1

我正在创建一个将包含多个页面的应用程序,我希望用户可以重定向到登录页面,以防他未经身份验证并尝试访问某些中间页面...登录在每个页面进行身份验证jsp/servlet

我正在开发这个jsp/servlet。但支柱也可以考虑。

在此先感谢

+0

你需要的HttpSession和过滤器进行登录认证。 – 2011-03-28 04:30:10

+0

[JSP中的通用登录授权]的可能的重复(http://stackoverflow.com/questions/5387345/universal-login-authorization-in-jsp) – 2011-03-29 05:54:11

回答

0

当你登录,设置会话属性

request.setAttribute("user","<username>"); 

并在每一页中,首先检查会话属性是否为其设置,

String user=request.getAttribute("user"); 
//check in database for user 
if(<user not exist>){ 
response.sendRedirect("login.jsp"); 
} 
+1

这是我以前做的事情,不想再次这样做..它必须在每个页面上执行......并且不在应用程序级别完成 – Varun 2011-03-29 03:24:26

0

您可以使用基于容器的安全性或基于表单的安全性来验证用户身份。使用基于容器的安全性时,Web浏览器将为您跟踪登录,并在需要时将凭据“重放”到服务器。如果浏览器还没有被认证,它会自动显示一个简单的登录表单。如果登录通过,用户的原始请求将继续。如果用户尝试将POST从表单发送到受保护区域中的操作URI,这也可以正常工作。浏览器通过身份验证后,POST正常进行。对于管理自己登录的应用程序,可能更容易坚持每一个页面都首先为经过身份验证的用户测试,如果不是,则重定向到登录页面。 Struts示例应用程序执行此操作 - 部分是通过使用在每个页面顶部执行此检查的特定于应用程序的自定义标记(app:checkLogon)。该标签是特定于应用程序的,因为构成“登录用户”的概念也是特定于应用程序的。

而且下面的链接将帮助您更

http://www.mooreds.com/jaas.html

您可能要延长RequestProcessor.It是最好的practices.It之一是惊人的,你可以做什么,在它的method.Look到它的processPreprocess方法。

欲了解更多信息,请参考...... http://www.javaworld.com/javaworld/jw-09-2004/jw-0913-struts-p2.html