当前位置: 首页 > 知识库问答 >
问题:

JAAS-如何在Web层中验证用户?

谭研
2023-03-14

我试图理解如何使用JAAS保护JavaEE应用程序。

事实上,我知道如何在EJB中使用规则,但是,我不知道如何在web层中验证用户,例如创建一个简单的JSF页面,使用登录表单,检查给定的用户名

通常的做法是什么?我希望有尽可能多的独立解决方案。

共有1个答案

子车海
2023-03-14

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

Java EE服务器很少运行不受信任的代码,所以JAAS提供的许多功能根本没有被使用。

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

  • 企业中的JAAS
  • JAAS发生了什么?

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

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

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

幸运的是,在JavaEE6及更高版本中,也有一种标准方法可以做到这一点,它是完全独立的:JASPIC auth模块。

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

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

  • 用JASPIC在Java EE中实现容器身份验证
  • JavaEE7的身份验证支持有什么新功能
 类似资料:
  • 问题内容: 我有以下情况: 服务器:码头(已配置JAAS) 客户端:Jersey通过JUnit调用(通过Maven) 我在Web服务器中设置了JAAS。我正在使用客户端部分作为测试。 在服务器端,用户通过具有JAAS处理的基本身份验证的表单进行身份验证。显然,用户必须先经过身份验证才能查看某些页面。 我希望能够在尝试访问安全页面之前通过泽西岛登录。如何才能做到这一点?我已经检查过您可以定义一个过滤

  • 提交登录表单时的Jetty标准输出: 提交登录表单时的Jetty日志文件(我输入的用户名出现在日志中,因此身份验证的一部分似乎起作用): 声明security-constraint和security-roke的web.xml的摘录: 你知道我怎样才能只拥有身份验证而避免角色吗?我正在考虑重写LdapLoginModule类,并强制执行一个我将在web.xml中声明的“dummy”角色。但我不确定这

  • 我已经将我的Kafka jaas配置设置为Spring引导应用程序中的外部bean,以便从application.yaml文件中读取我的配置。 但是,从yaml文件读取jaas密钥表文件时,我遇到了一个错误。 面临错误 这就是我配置jaas的方式 KafkaJaasConfigurationProperty.java 应用yml 配置Bean.java 任何帮助将不胜感激。谢谢!

  • 问题内容: 我正在使用Spring,Jersey和Hibernate(JPA)在Java中构建REST Web服务。 现在,我正在尝试在资源中添加对验证的支持。JSR-303(Bean验证)自然是一个合适的选择(我使用的是Hibernate Validator,它是JSR-303的参考实现)。但是,我尝试首先合并一些概念。 在我看来,至少有两种可能的验证: 定期验证字段 ,例如,检查属性是否为nu

  • 我已经创建了自定义中间件类来验证JWT令牌。我在

  • 是否可以使用Kerberos但不使用JAAS来验证用户/密码?