gpt4 book ai didi

java - 代理服务器的 Axis2 NTLM 身份验证

转载 作者:行者123 更新时间:2023-11-30 11:56:05 24 4
gpt4 key购买 nike

在需要 NTLM 身份验证的 http 代理服务器上对 Axis2(版本 1.4)客户端进行身份验证的正确方法是什么?

我正在使用以下代码提供代理凭据,但身份验证仍然失败(请参阅最后的详细信息):

Options options = serviceStub._getServiceClient().getOptions();
options.setProperty(HTTPConstants.CHUNKED, false);
options.setProperty(HTTPConstants.PROTOCOL_VERSION, HTTPConstants.HEADER_PROTOCOL_10);

ProxyProperties proxyProperties = new ProxyProperties();
proxyProperties.setProxyName("123.123.123.123");
proxyProperties.setProxyPort(8080);
proxyProperties.setUserName("myUser@www.example.org");
proxyProperties.setPassWord("1234");
proxyProperties.setDomain("");
options.setProperty(HTTPConstants.PROXY, proxyProperties);

使用完全相同的凭据,网络浏览器(例如 Firefox)能够通过代理,因此我假设代理服务器已正确设置。然而,对于 Axis2 客户端,身份验证失败(HTTP 状态代码为“407 需要代理身份验证”)。

更多细节:我使用网络嗅探器比较了来自 firefox 和我的客户端的网络流量。主要区别似乎是,axis2 客户端正在为 ntlm 质询发送空响应。

有没有人使用 NTLM 在 http 代理服务器上成功通过身份验证?你能给我一个代码示例吗?

最佳答案

我无法解决这个问题(使用 Axis 2)。不想将此归咎于 Axis2 强硬。也许我做错了什么但无法弄清楚,即使经过数小时的尝试、调试和阅读文档也是如此。

但是当我的选择用完时,我不得不寻找其他选择。这个其他选项以替代 SOAP 框架的形式出现。存在相当多的 Java SOAP 框架。我了解 Axis2、CXF 和 JAX-WS。

我现在使用 JAX-WS 而不是 Axis2。更换框架是一个直接的过程。替换的一个很好的副作用是,我摆脱了 Axis2 附带的巨大依赖树。 JAX-WS 是 J6EE 的一部分,因此不需要导入其他依赖项。

此时我只在客户端进行了替换。服务器仍然使用 Axis2。这种组合到目前为止效果很好,但我仍然计划最终在服务器端也替换 Axis2。

总而言之:如果您不使用 Axis2 的特殊功能,我认为 JAX-WS 是更好的选择。

关于java - 代理服务器的 Axis2 NTLM 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4680673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com