Java 基于 EE 的 Web 应用程序服务器中的 JAAS 安全性是否依赖?

Is JAAS security in Java EE based web application server dependent?

我是 Java EE 开发的新手,但我在这方面进展顺利, 我对我的应用程序的安全部分有点困惑。

我阅读了一些关于如何在 Java EE Web 应用程序中实现 JAAS 安全性的文章。这是我阅读和理解的内容,其他人都不清楚: http://uaihebert.com/user-login-validation-with-jaas-and-jsf/

这个例子很棒,但它配置了 JBoss 服务器,我没有使用 JBoss,我也不打算使用。如果我要使用 JAAS,我是否需要配置我 运行(正在开发)的本地 Web 服务器?或许对于 JAAS 有一些我不太了解的地方? 如果我按照那个例子使用 JBoss 并像他们那样配置它。当我将 Web 应用程序部署为 war 文件并上传 war 文件时,可以说在 tomcat 服务器上,它仍然是安全的吗?

任何 help/guidance 将不胜感激! 谢谢!

JAAS 安全性在 Java EE 中不存在。 JAAS 是一个 Java SE 框架,用于在 class 级别保护资源。您使用它来限制您下载的代码(如 Applets)可以在您的计算机上执行的操作。

有了Java EE,情况就相反了。您不会为单个用户(您在您的计算机上)下载未知代码,而是未知用户登录您的代码(您 运行 在服务器上)。

有些混淆是因为一些服务器使用术语 JAAS 来表示最近称为 "identity stores"(存储用户和角色的东西,如 ldap)的服务器特定实现。

但是:

  • 只使用了JAAS的尴尬的一小部分(一些类型比如LoginModule)
  • 声称使用 JAAS 的服务器都以不同的方式实现,以至于您只想知道他们为什么要开始使用它
  • 到目前为止,并不是每个服务器都使用 JAAS。 Tomcat,Jetty、Resin、Liberty 和 WebSphere 根本不使用它。