目前,我正在Java中为Microsoft实现一个连接器。
为此,我希望通过NTLM创建一个与Dynamics服务器的连接。我发现的大多数关于这方面的博客和文档都过时了。
如果有人能建议我使用org.apache.http.client.HttpClient处理Dynamics身份验证的方法,我们将不胜感激。(请建议我是否有任何Java客户端库可供Dynamics使用)
此外,如果有人能建议我一个地方,我可以获得一个免费的Dynamics测试环境来测试我的Dynamics连接器应用程序,我们将不胜感激。
发布于 2017-12-04 16:15:39
Windows Challenge/Response (NTLM)是用于网络(包括运行Windows操作系统的系统和独立系统上)的身份验证协议。我能够使用NTLM版本4.4处理org.apache.http.client.HttpClient身份验证。
下面是我使用的Maven依赖项(方法和方法名称在其他版本中可能略有不同)。
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4</version>
</dependency>实现需要以下导入。这是非SSL连接的基本要求。
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;以下是实现。需要用真正的凭据替换Username、Password和Domain。
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映像。
https://stackoverflow.com/questions/47278489
复制相似问题