有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

jakarta ee在javaweb应用程序中基于表单的身份验证

我想了解更多关于基于表单的身份验证的信息。我理解,当您想要保护某些服务器资源(如某个目录下的所有JSP)时,使用基于表单的身份验证机制,并且只允许具有特定角色的用户使用这些URL

我正在从头开始开发一个应用程序,只是为了更好地进行web开发,我有基于表单的身份验证设置,它工作得很好。但是,我还希望为用户提供动态登录的能力,使用“登录”按钮,而不仅仅是在他们必须尝试访问受保护的资源时

我知道,当我试图让登录按钮将用户带到使用j_security_check作为其操作的登录页面时,服务器大叫,因为我正在直接访问登录页面,这很有意义,因为我没有尝试访问受保护的资源,所以我猜服务器在我认证后不知道带我去哪里

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


共 (1) 个答案

  1. # 1 楼答案

    我能想到的提供您想要的行为的唯一方法是通过一个不容易过期的cookie,它有它的fair share of security concerns。似乎你想拥有“谷歌登录”或“Facebook登录”所具有的易用性。这些都倾向于大量使用OAuth,我认为它们不适用于您的项目

    您是否每次访问资源时都必须登录该资源?您不应该这样做,因为您似乎正在使用servlet的表单authenicator