2013-03-06 34 views
1

我正在使用Tomcat 7 JSP应用程序,并且正在使用应用程序级别认证。即用户登录到我检查数据库的表单中。然后我在会话中设置了一个用户bean来登录它们。选项重新JSP认证

这似乎是合乎逻辑的事情。但现在我正在质疑自己......我陷入了细节之中。

例如我检查用户是否在每个安全页面上登录。如果没有,我重定向到登录页面。然后登录将它们返回到安全页面。这有会议超时的问题。

例如用户编辑表单(基本CRUD)。然后电话铃响了。通话结束后,他们提交表格,但没有有效的会话。该操作重定向到登录名。但登录后表单变量是空白的,他们在表中创建一个空行...

我可以想办法处理这种情况,但现在我想知道如果这是一个疯狂的追逐。有没有更好的办法?

  • 有没有常见问题,讨论基于应用程序或基于容器的身份验证的优点?
  • 是否有一个很好的记录模式,用于自己的认证?
  • 这种情况在未来会引起可伸缩性问题吗?

寻找替代品。 谢谢

+0

请考虑使用Spring Security框架:http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html这是一个伟大的框架,并解决了很多认证/授权问题。 – Michael 2013-03-06 15:22:58

回答

2

只是我2美分。 继承人我会做什么。

1)Well instead of just relying on Session Variable alone , you can create a cookie to log other details像 用户名,lastAccessedPage等

2)Don't not handle authentication at the JSP , rather move the logic to a Servlet Filter。 理想情况下,应该检查会话是否对所有请求都有效。

3)所以When session times out在提交表格时,仍然提交参数 只是这样会被过滤器拦截。 在过滤器中你可以create a temp session variable与像userid_pagetype (to make it unique)一键存储所有的请求数据(即请求参数和请求PARAM值。)`

在此设置到位时,他的表上的土地再次

可以填充字段
+0

实际上,我在包含其他信息的会话中设置了一个用户对象。 – PrecisionPete 2013-03-07 22:06:49

+0

过滤器确实更有意义。但我无法弄清楚如何将所需角色传递给过滤器。 – PrecisionPete 2013-03-07 22:07:32

+0

+1表示过滤器,这实际上是最好的方法。然而,许多人似乎忘记了这一点。 – csotiriou 2013-04-16 16:33:14