【问题标题】:JAAS - How to authenticate user in web tier?JAAS - 如何在 Web 层对用户进行身份验证?
【发布时间】:2013-08-09 00:44:43
【问题描述】:

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

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

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

【问题讨论】:

    标签: java jakarta-ee jaas jaspic


    【解决方案1】:

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

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

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

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      • 2013-11-14
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      • 2012-09-29
      • 2016-02-15
      相关资源
      最近更新 更多