authentication - http服务器认证

标签 authentication tomcat tomcat7

我在 tomcat 7.0 服务器(称之为服务器 A)上部署了一个 servlet 应用程序。该应用程序将获取用户的凭据并将其传递到另一台服务器(服务器 B)以检索数据。

问题:

机器1的用户Alice登录到服务器A,服务器A使用Alice的凭证访问服务器B,getPasswordAuthentication()用于将Alice的凭证传递给服务器B,随后机器2的用户Bob登录到服务器A。服务器A将继续使用 Alice 的凭据访问服务器 B。我注意到没有为用户 Bob 调用 getPasswordAuthentication()。

有没有办法在每次服务器 A 尝试访问服务器 B 时强制进行身份验证? ps:如果在Server A上重启tomcat,重启后对Server B的第一个请求会进行鉴权。

非常感谢您的反馈。

最佳答案

在访问服务器 b 的资源之前,您需要使用 AuthCacheValue.setAuthCache(new AuthCacheImpl());

显式清除缓存

这是因为默认情况下会缓存凭据,并且没有指定缓存行为的配置。

import sun.net.www.protocol.http.AuthCacheValue;
import sun.net.www.protocol.http.AuthCacheImpl;
[....]
AuthCacheValue.setAuthCache(new AuthCacheImpl());

关于authentication - http服务器认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6240310/

相关文章:

java - 找不到 Tomcat 7 setenv.sh

php - 无法使用 PHP 在 mongodb 上进行身份验证

android - 为什么大多数人在retrofit中使用拦截器添加认证头?

authentication - 如何使用 JavaMail 调试 SMTP 身份验证错误?

java - 在 Tomcat 中监控 webapp -(不是 tomcat 监控)

tomcat - 部署到 Tomcat 上的非 appBase 位置

authentication - 防火墙后面的 web 应用程序上的 OAuth - 有可能吗?

java - 如何防止在 Tomcat Apache 7 中取消部署应用程序

java - log4j 失败 - 无法刷新 servlet 中的编写器(java.io.IOException : Bad file descriptor)

jersey - Java 类型类 com.sun.jersey.multipart.FormDataMultiPart,未找到 MIME 媒体类型 multipart/form-data