java - JAAS : on Callback ( Interesting based on HTTP headers )

标签 java jakarta-ee tomcat jaas

我正在使用 NameCallback 和 PasswordCallback 作为用户名和密码。对于用户名和密码,浏览器会弹出弹出窗口,当我输入用户名和密码时,JAAS 会验证我的请求。

在 wireshark 上,我看到 401 未经授权消息(WWW-Authenticate header )出现,当我输入用户名/密码 HTTP 请求时生成凭据(带有授权 header )并转到服务器。

我的要求:我不想弹出来。我在其他服务器上的应用程序有用户名/密码,所以一旦它收到 401 然后根据一些逻辑它会生成带有授权的 HTTP 请求 header /凭据并将其发回。

流:用户->其他服务器->我的Tomcat5.5

在其他服务器上,没有人可以手动输入用户名/密码。应用程序已部署,它只会生成带有凭据的 HTTP 请求并将其发送回 tomcat。

我们可以有任何其他类似这样的回调吗?需要你的帮助。请向我提供反馈以及与方法相关的反馈。

编辑问题:

实际情况如下:

UserA 调用(SIP 协议(protocol))到 XYZ 服务器。部署在 XYZ 服务器上的应用程序创建一个 HTTP REST 请求并将其发送到部署了一个应用程序的 Tomcat 服务器,以便获取一些用户帐户详细信息。一旦 HTTP 请求到来到 tomcat,我必须对其进行身份验证。我正在使用 tomcat 的 JAASRealm 实现。

现在进行身份验证,tomcat 正在做什么,它会在 XYZ 服务器上弹出用户名/密码窗口。在 XYZ 服务器上,由于应用程序已经创建了 HTTP 请求,所以没有人在这里手动输入用户名/密码(就像这样不会转到用户 A 设备)。

我正在寻找一种不会出现此弹出窗口的方法,并且部署在 XYZ 服务器中的应用程序应该执行以下操作:

如果(响应等于 401)则 使用凭据创建 HTTP 请求。

所以我一直在寻找一个不弹出的解决方案。现在清楚了吗,请建议。

最佳答案

您的应用程序应使用 java.net.Authenticator 向 HttpURLConnection 提供凭据,而不是直接处理 401 和 WWW-Authenticate header 。

关于java - JAAS : on Callback ( Interesting based on HTTP headers ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10990611/

相关文章:

java - 客户端是否一直连接到消息队列中的消息调度程序?

java - RESTful web 服务无法在 Tomcat 8.0.5 上启动

java - 在 Tomcat 中停止 ExecutorService 线程

java - 生命射线;将其他参数传递给 jQuery UI aotocompleter

java - 在 Java 中,如何从组件类型的类中获取类的数组?

java - 从数据库生成直方图

java - 禁用或取消部署我的应用程序后计划仍在运行

java - 如何从远程主机访问 Glassfish V3 管理控制台网站

java - 处理 Spring/Tomcat 初始化失败

java - "request"如何表示 JSP 中的 HttpServletRequest 实例?