Security 声明式安全的JSP登录-实际身份验证是如何发生的?

Security 声明式安全的JSP登录-实际身份验证是如何发生的?,security,authentication,servlets,jaspic,Security,Authentication,Servlets,Jaspic,我对此感到有点困惑,因为我还没有看到很多能让我完整了解情况的例子。到目前为止,我找到的最好的解释是 通过在web.xml中定义一个安全角色,例如“admin”,并使我的登录表单包含所有必要的字段(即j_security_check as action,以及字段j_username、j_password),实际的身份验证是如何/在何处发生的 我计划使用数据库中存储的用户名/密码(哈希)进行自定义身份验证。当用户提交表单时,如何让JavaEEWeb容器调用我的sevlet/bean方法来执行实际的身

我对此感到有点困惑,因为我还没有看到很多能让我完整了解情况的例子。到目前为止,我找到的最好的解释是

通过在web.xml中定义一个安全角色,例如“admin”,并使我的登录表单包含所有必要的字段(即j_security_check as action,以及字段j_username、j_password),实际的身份验证是如何/在何处发生的

我计划使用数据库中存储的用户名/密码(哈希)进行自定义身份验证。当用户提交表单时,如何让JavaEEWeb容器调用我的sevlet/bean方法来执行实际的身份验证?我没有注意到有任何地方可以在web.xml中为我的代码添加一个钩子来进行实际的身份验证

通过在web.xml中定义一个安全角色,例如“admin”,并使我的登录表单包含所有必要的字段(即j_security_check as action,以及字段j_username、j_password),实际的身份验证是如何/在何处发生的

在servlet实现中,servlet容器。例如,在Tomcat中,它是由类(源代码)完成的

我计划使用数据库中存储的用户名/密码(哈希)进行自定义身份验证。当用户提交表单时,如何让JavaEEWeb容器调用我的sevlet/bean方法来执行实际的身份验证?我没有注意到有任何地方可以在web.xml中为我的代码添加一个钩子来进行实际的身份验证

如果您希望继续使用容器管理的身份验证,但希望根据数据库检查登录,则需要相应地配置所谓的“领域”。不清楚您使用的是哪个servletcontainer,但在例如Tomcat中,文档可在以下位置获得:

如果您真的希望调用自己的自主身份验证系统,那么您需要删除容器管理的安全性,并进一步自主开发它。这是不推荐的。

实际的身份验证是通过以下两种方式进行的:

  • 通过服务器专有方式,例如JBoss中的,或提到的Tomcat one BalusC。对于每台服务器,这些都是不同的
  • 通过JASPIC,它是在javaee6中引入的
  • JASPIC几乎已经标准化了专有方法,但它是一个相当低级的API,不幸的是,它只适用于完整的JavaEE6和7实现

    有关更多详细信息,请参阅