Jersey客户端基本认证对话抑制

时间:2013-08-30 04:35:38

标签: java http http-authentication jersey-client

我正在使用Jeresy Client Api与Rest服务进行通信。我想处理来自服务器的401响应。每当服务器给401 Jersey提供自己的身份验证对话框,如浏览器的用户名和密码。

client.addFilter(new com.sun.jersey.api.client.filter.HTTPBasicAuthFilter(username,password));

有没有办法隐藏或抑制此刻度并显示我的自定义刻度。

1 个答案:

答案 0 :(得分:0)

在我开发使用Jersey Client API向RESTful Web服务发出HTTP请求的Eclipse插件之前,我已经看到过这种问题。每次Web服务使用401 HTTP状态代码响应时,Eclipse都会自动显示标准身份验证对话框,要求用户输入用户名和密码。

我可以通过删除默认的Authenticator实例来禁止此不需要的身份验证对话框。您可以使用以下代码段执行此操作:

Authenticator.setDefault(null);

如果从应用程序的初始化阶段执行此操作,则在使用Jersey Client API发出任何HTTP请求之前,如果发生401 HTTP响应,则应阻止显示默认身份验证对话框。

有关详细信息,请参阅Authenticator documentation

如果要显示自己的自定义身份验证对话框而不是默认对话框,则可以实现显示所需对话框的Authenticator自定义子类。然后,您可以使用Authenticator.setDefault(customAuthenticator);

在应用程序中注册它
相关问题