1

我正在 Java 下开发一个应用程序,它必须在某个时候调用在 navision 下开发的 Web 服务,该服务需要我提供的域用户/通行证。

现在这个 WS 不是公开的,我必须使用不同的用户/密码连接到特定的 VPN 才能调用 Web 服务,这样我才能正确测试我的代码。

每次我调用它时,我都会收到一个 401 代码作为响应,拒绝我的身份验证。

我尝试使用 java.net.authenticator 设置默认身份验证器和 org.apache.commons.httpclient 在适当范围内设置默认凭据,但仍然没有收到肯定的答案。

我也尝试过使用soapUI进行外部测试但没有成功,尽管我不是100%的配置是正确的。

无论如何,如何确定身份验证问题的根源?

我不确定这是否是因为我在 vpn 连接或其他 navision Web 服务下进行测试需要某种特殊处理,或者这两种情况同时进行。

我欢迎任何想法、方法或评论。

谢谢

4

1 回答 1

1

要检查的一件事是 NAV 的中间层“CustomSettings.config”文件中的“WebServicesUseNTLMAuthentication”设置。我的理解是,当您不(或不能)使用 SPNEGO 进行身份验证时,需要将此属性设置为“true”,这是 Microsoft 的首选和默认方法。

可以在此MSDN 文章中找到一些其他详细信息。

此外,Freddy Kristiansen(NAV 团队的软件架构师)在他的博客上写了一系列关于如何从各种不同平台连接到 NAV Web 服务的文章。与您的项目最相关的是一般连接到 NAV Web 服务和从 Java 连接到 NAV Web 服务

希望有帮助。

于 2012-07-17T02:21:48.520 回答