2

我试图了解如何使用 JAAS 保护 Java EE 应用程序。

实际上我了解如何在 EJB 中使用规则,但是,我不了解如何在 Web 层中对用户进行身份验证,例如使用登录表单创建一个简单的 JSF 页面,使用数据库检查给定的用户名和密码,然后在成功案例如何在我的应用程序中为此用户设置委托人。

这样做的常见方法是什么?我希望有尽可能多的独立于 AS 的解决方案。

4

1 回答 1

4

JAAS 不是执行此操作的通用标准。事实上,JAAS 登录模块有点不适合 Java EE 身份验证。完整的 JAAS 模型是为本地运行的 Java 应用程序创建的,将代码库彼此屏蔽(例如,允许从文件系统读取的特定 jar)。

Java EE 服务器很少会运行不受信任的代码,因此 JAAS 提供的大部分功能根本没有被使用。

关于这个主题的两篇非常好的文章如下:

这样做的常见方法是什么?

不幸的是,常见的是使用特定于 AS 的东西。这个“事物”的术语也是特定于 AS 的。它可以被称为“领域”、“安全域”、“区域”、“登录模块”中的任何东西,谁知道他们还叫什么。

我希望有尽可能多的独立于 AS 的解决方案。

幸运的是,在 Java EE 6 及更高版本中还有一种标准方法可以做到这一点,它完全独立于 AS:JASPIC auth modules

然而,不同的应用服务器并不总是完全支持这一点。当然,它是 Java EE 标准的一部分,意味着供应商必须支持它,但这并不意味着他们按照规范所说的那样实现了所有东西(而是他们只实现了 TCK 测试的内容)。

有关 JASPIC 的更多信息,请参阅我写的以下两篇文章:

于 2013-08-07T15:33:25.267 回答