我们需要在 Java Web 项目中支持基本身份验证和稍后的摘要身份验证。我的疑问是
- 基本/摘要身份验证是否是 Web 服务器(tomcat、jboss 等)中的配置。我们的用户/密码在 SQL 数据库中,我们通过数据服务获取这些。在这种情况下,我如何配置 Web 服务器以使用数据服务进行身份验证?
- 我是否需要在代码中明确处理基本/摘要身份验证?就像我将收到来自 Servlet 的身份验证请求并连接到数据服务进行身份验证一样?
我们需要在 Java Web 项目中支持基本身份验证和稍后的摘要身份验证。我的疑问是
在 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 特定领域、登录模块以及您拥有更好的东西,或者只是不知道替代方案。