1

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

  • 基本/摘要身份验证是否是 Web 服务器(tomcat、jboss 等)中的配置。我们的用户/密码在 SQL 数据库中,我们通过数据服务获取这些。在这种情况下,我如何配置 Web 服务器以使用数据服务进行身份验证?
  • 我是否需要在代码中明确处理基本/摘要身份验证?就像我将收到来自 Servlet 的身份验证请求并连接到数据服务进行身份验证一样?
4

2 回答 2

5

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

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

Java EE 6 还支持标准化的身份验证模块,这对于许多人来说是非常陌生的(看起来)。这些是基于文件的、基于 JDBC 的等,通常被认为是特定于应用程序服务器/容器的。

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

不幸的是,JASPIC/JASPI/JSR 196 的采用充其量似乎平淡无奇。目前,人们似乎更信任 AS 特定领域、登录模块以及您拥有更好的东西,或者只是不知道替代方案。

于 2012-07-28T10:38:15.483 回答
4

基本和摘要式身份验证包含在 servlet 规范中。阅读规范或本教程以了解其工作原理。

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

于 2012-07-28T05:57:30.407 回答