Java服务器代码/web服务器中的基本/摘要身份验证实现



我们需要在Java web项目中支持基本身份验证和稍后的摘要身份验证。我怀疑

  • 基本/摘要身份验证是否是web服务器中的配置(tomcat、jboss等)。我们的用户/密码位于SQL数据库中通过数据服务获取这些信息。在这种情况下,我如何配置web服务器使用数据服务进行身份验证
  • 是否需要在代码中显式处理基本/摘要身份验证?就像我将收到来自Servlet和将连接到数据服务进行身份验证

在Java中,EE安全性默认是声明性的。这意味着您只需要通过一个名为Role的抽象概念来指定您希望保护的资源。

除了JB Nizet的答案之外,JBoss AS特定的登录模块(大致相当于Tomcat的Realm实现)可以在这里找到:http://docs.jboss.org/jbosssecurity/docs/6.0/security_guide/html/Login_Modules.html

Java EE 6还支持标准化身份验证模块,这显然是许多人所未知的。这些是基于文件、基于JDBC等,通常被认为是特定于应用程序服务器/容器的。

这是通过所谓的JASPIC API(又名JASPI,又名JSR196)完成的,参见例如:

  • JBoss AS7:为Web应用程序启用JASPI身份验证
  • 使用JASPI实现自定义身份验证提供程序
  • Glassfish Web层中的可插拔身份验证

不幸的是,JASPIC/JASPI/JSR196的采用充其量也显得乏善可陈。目前,人们似乎信任特定于AS的领域、登录模块以及让你变得更好的东西,或者只是不知道其他选择。

servlet规范涵盖了

Basic和Digest身份验证。阅读规范或本教程,了解其工作原理。

不过,凭据的存储位置和检查方式由每个容器自行决定。Tomcat支持各种Realm实现(基于文件、基于JDBC、基于LDAP等)。

相关内容

  • 没有找到相关文章

最新更新