JAVA Web应用程序中基于表单的身份验证

时间:2014-05-13 13:53:08

标签: java java-ee authentication

我想获得有关基于表单的身份验证的更多信息。我知道,当您想要保护某些服务器资源(如某个目录下的所有jsps)时,会使用基于表单的身份验证机制,并且只对具有某些角色的用户提供这些URL。

我正在从头开始研究应用程序,只是为了更好地进行Web开发,并且我有基于表单的身份验证设置,并且它运行正常。但是,我还想建立用户使用“登录”按钮即时登录的能力,而不仅仅是当他们必须尝试访问受保护资源时。

我知道当我尝试使用登录按钮将用户带到使用j_security_check作为其操作的登录页面时,服务器因为我直接访问登录页面而大叫,这是有道理的,因为我没有尝试访问受保护的资源,所以我想服务器在我进行身份验证后不知道该把我带到哪里。

所以,我的问题是,如果我想保持基于表单的身份验证以保护一些管理资源,但也能够让用户只需使用登录按钮即时登录,我是否必须滚动我自己的安全性,并将表单带到一个servlet(例如)手动检查数据库的用户名和密码,并设置一些属性,说明用户是否登录?如何知道我是否登录了服务器?我知道有一些服务器端方法可以获取用户,询问他们是否处于某个角色等等,但并不是所有服务器都受管理,这意味着我不能只说'嘿,我已经验证了用户我自己,这是谁,它必须通过基于表单的身份验证?我还在学习网页开发。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我能想到提供你想要的行为的唯一方法是通过一个不容易过期的cookie,它有fair share of security concerns。您似乎希望“使用Google登录”或“使用Facebook登录”具有易用性。这些往往会大量使用称为OAuth的东西,我认为这不适用于您的项目。

您每次访问资源时都被迫登录资源吗?你不应该,因为你似乎正在使用servlet的形式验证器。