gpt4 book ai didi

java - 我如何在 JBoss 中调用 java 服务器类进行 JAAS 身份验证?

转载 作者:行者123 更新时间:2023-12-01 13:49:29 25 4
gpt4 key购买 nike

我有一个非常简单的问题,我没有在 SO 或其他地方(即数百页的 JBoss 安全文档)找到答案:

我想在通过 JAAS 进行身份验证时实现登录功能(特别是数据库日志记录),而客户端无需进行单独的 REST 调用。

我不是专家,但我的理解是身份验证是通过 JBoss XML 中的数据库查询进行的,而不是直接调用服务器。由于 JBoss 正在执行此操作并将身份验证与服务器 war 连接起来,因此我希望有一个钩子(Hook)可以让它启动 REST 调用,或者通过另一种机制调用 Java 代码。

找不到重复项,但如果它能回答这个确切的问题,请指出它。

谢谢

最佳答案

我的经验是使用网络应用程序而不是客户端应用程序,因此我不完全理解您的问题,但很明显您遭受了严重的误解。

想要在通过 JAAS 进行身份验证时实现登录功能(特别是数据库日志记录)。

为此,您只需实现一个 LoginModule 类并将其注册到 JBoss。

让我们说清楚这一点。 JAAS 在服务器上执行,作为资源安全策略的一部分。当资源需要经过身份验证的访问时,JBoss servlet 会执行与其相关的安全策略。安全策略包括

a) 容器(JBoss 服务器)如​​何请求身份验证数据。但这部分并未由 JAAS 指定。 JAAS 仅指定容器如何将该数据传递回登录模块。

b) 容器运行的登录模块,用于检查身份验证数据是否正确,并填写/提供将传递给服务器中的应用程序的主体。登录模块根据需要进行检查(让它是 SQL 查询,或 LDAP 查询,或调用 WS,或...)。

客户端无需进行单独的 REST 调用。与 JAAS 没有任何关系。策略可能需要设置 cookie 来进行身份验证。我非常确定(再次强调,我已经习惯了 Web 应用程序),如果您使用基本 HTTP 身份验证,则不需要额外的调用。再说一次,JAAS 仅与检查用户/密码和提供/填写主体相关。容器(JBoss服务器)如​​何获取数据与JAAS无关。

我不是专家,但我的理解是身份验证是通过 JBoss XML 中的数据库查询进行的,而不是直接调用服务器。由于 JBoss 正在执行此操作并连接

“JBoss XML”什么也不做,它只是安全策略的描述。当您部署应用程序时,其描述符会告诉哪些资源将受到哪些安全策略的保护。不要混淆这些术语。通过登录模块执行SQL查询(或LDAP查询,或Web服务调用等)的是容器(“JBoss服务器”)。

从你问题的其余部分来看,我无法理解你想做什么。您希望 JAAS 模块直接调用您的 webapp 代码吗?

关于java - 我如何在 JBoss 中调用 java 服务器类进行 JAAS 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20081440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com