首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Microsoft Dynamics For Java

Microsoft Dynamics For Java
EN

Stack Overflow用户
提问于 2017-11-14 05:45:49
回答 1查看 1K关注 0票数 0

目前,我正在Java中为Microsoft实现一个连接器。

为此,我希望通过NTLM创建一个与Dynamics服务器的连接。我发现的大多数关于这方面的博客和文档都过时了。

从Java连接到NAV Web服务

如果有人能建议我使用org.apache.http.client.HttpClient处理Dynamics身份验证的方法,我们将不胜感激。(请建议我是否有任何Java客户端库可供Dynamics使用)

此外,如果有人能建议我一个地方,我可以获得一个免费的Dynamics测试环境来测试我的Dynamics连接器应用程序,我们将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-04 16:15:39

Windows Challenge/Response (NTLM)是用于网络(包括运行Windows操作系统的系统和独立系统上)的身份验证协议。我能够使用NTLM版本4.4处理org.apache.http.client.HttpClient身份验证。

下面是我使用的Maven依赖项(方法和方法名称在其他版本中可能略有不同)。

代码语言:javascript
复制
<dependency>
 <groupId>org.apache.httpcomponents</groupId>
 <artifactId>httpclient</artifactId>
 <version>4.4</version>
</dependency>

实现需要以下导入。这是非SSL连接的基本要求。

代码语言:javascript
复制
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.NTCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.HttpClientBuilder;

以下是实现。需要用真正的凭据替换UsernamePasswordDomain

代码语言:javascript
复制
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
HttpClient httpClient = HttpClientBuilder.create()
                .setDefaultCredentialsProvider(credentialsProvider)
                .build();

credentialsProvider.setCredentials(AuthScope.ANY, new NTCredentials("Username", "Password", null, "Domain"));

现在,这个http客户机可以用来与Dynamics通信。

但我无法在我所在的地区(亚洲)为找到免费的测试环境。但很少有云服务提供商为其他地区提供免费测试试验。

作为Linux用户,我必须在虚拟环境中安装Windows,并在其上安装Dynamics以创建测试环境。如果您熟悉Docker,可以从此链接下载Dynamics映像。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47278489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档