java - 泽西岛客户端是否支持NTLM代理

标签 java http ntlm jersey-client proxy-authentication

我想用ntlm代理打一个泽西岛客户电话?有没有可能,因为我没有得到任何明确的信息。以前有人试过吗?

最佳答案

是的,可以将Jersey Client配置为通过需要ntlm身份验证的代理服务器进行连接。
下面是一个简化的代码片段,它准备了一个适合jersey v2.5+的ClientConfig

final ClientConfig config = new ClientConfig();

config.property(ClientProperties.PROXY_URI, "http://myproxy.com:8000");

CredentialsProvider credentialsProvider = new BasicCredentialsProvider();

final AuthScope ntlmAuthScope =
        new AuthScope("myproxy.com", 8000, AuthScope.ANY_REALM, "NTLM");

credentialsProvider.setCredentials(
        ntlmAuthScope,
        new NTCredentials("user", "password", "hostname", "domain") );

config.property(
        ApacheClientProperties.CREDENTIALS_PROVIDER, credentialsProvider);

config.connectorProvider(new ApacheConnectorProvider());

Client client = ClientBuilder.newClient(config);

请注意:我将apache httpclient连接器与jersey client一起使用-如果使用another client transport connector,则可能需要稍有不同的代码。
如果希望对post/put请求进行缓冲(因此可重复),以响应代理服务器返回的407个身份验证挑战,则可能还需要在代码中添加以下行:
config.property(ClientProperties.REQUEST_ENTITY_PROCESSING,
                RequestEntityProcessing.BUFFERED);

本文翻译自 https://stackoverflow.com/questions/21330767/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。


相关文章:

c++ - Web服务器端应用程序的NTLM身份验证

java - 设置Quartz设置的'clustered'属性可以在一台机器上引起问题吗?

java - 在Java中调用另一个方法时触发一个方法(或如何在没有aop的情况下执行aop)

http - Web API-HTTP标头中的身份验证凭据与SSL正文?

http - 是否有人使用YAWS服务器作为HTTP代理?

php - NTLM身份验证 - 使用PHP获取Windows登录,域和主机

java - 将用户名传递给Spring Security

java - 如何使用XML解析器将java.lang.string解析为java.lang.integer android

java - Spring XML错误:无法解析占位符“ cas.server.host”

javascript - 使HTTP服务器取消监听端口80