【问题标题】:Options re JSP Authentication关于 JSP 身份验证的选项
【发布时间】:2013-03-06 14:45:18
【问题描述】:

我正在开发一个 Tomcat 7 JSP 应用程序,并且正在使用应用程序级别的身份验证。即用户登录到我检查数据库的表单。然后我在会话中设置了一个用户 bean 来让他们登录。

当时这似乎是合乎逻辑的事情。但现在我在质疑自己……我陷入了细节的泥潭。

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

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

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

  • 是否有讨论基于应用程序或基于容器的身份验证优点的常见问题解答?
  • 是否有一个很好的文档记录模式用于自行验证?
  • 这种情况会在未来导致可扩展性问题吗?

寻找替代品。 谢谢

【问题讨论】:

标签: jsp authentication tomcat servlets


【解决方案1】:

只有我的 2 美分。 这是我会做的。

1) Well instead of just relying on Session Variable alone , you can create a cookie to log other details 喜欢 UserName , lastAccessedPage 等。

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

3) 所以When session times out在提交Form的时候,还是提交了参数, 只是这将被过滤器拦截。 在过滤器中,您可以使用 userid_pagetype (to make it unique) 之类的键 create a temp session variable 来存储所有请求数据(即请求参数和请求参数值。)`

有了这个设置,你可以在他再次登陆表单时填充字段

【讨论】:

  • 其实我是在会话中设置一个包含其他信息的用户对象。
  • 过滤器确实更有意义。但我不知道如何将所需的角色传递给过滤器。
  • +1 用于建议过滤器,这实际上是最好的方法。然而,许多人似乎忘记了这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-08
相关资源
最近更新 更多