JAAS:关于回调(基于HTTP头的兴趣)

时间:2012-06-12 04:36:57

标签: java java-ee tomcat jaas

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

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

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

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

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

我们可以进行任何其他类似的回调。需要你的帮助。请向我提供与方法相关的反馈。

编辑问题:

以下是实际案例:

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

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

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

if(响应等于401)然后 使用凭证创建HTTP请求。

所以我一直在寻找一个没有弹出窗口的解决方案。现在很清楚,请建议。

1 个答案:

答案 0 :(得分:2)

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