![](/img/trans.png)
[英]Java Consume SharePoint 2010 REST Service with Domain Authentication
[英]SharePoint 2010 REST Java authentication
我很高兴使用PowerShell访问SharePoint。 它只是选择了-DefaultCredential,而我不必为此担心。 那是为了原型。
但是我的实际代码是Java。 现在我对此完全不确定。
即使我进行REST调用,但是如果我没有正确进行身份验证,SOAP也会失败。
方法1:NTLM
我唯一不确定的是工作站ID。 我使用Citrix登录到VM,并且有一个明确的工作站ID。 我用那个 返回401。
DefaultHttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://teams.host.com/_vti_bin/listdata.svc/");
NTCredentials credentials = new NTCredentials("user", 'pass', "workstation", "Domain");
client.getCredentialsProvider().setCredentials(new AuthScope("teams.host.com",80), credentials);
HttpResponse response = client.execute(request);
方法2:基本身份验证。
HttpGet request = new HttpGet("http://teams.host.com/_vti_bin/listdata.svc/");
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("user", "password"));
CloseableHttpClient httpClient =
HttpClientBuilder.create().setDefaultCredentialsProvider(credentialsProvider).build();
HttpResponse response = httpClient.execute(request);
返回401。
我还可以使用其他什么方法? 消化 ? 由于我不知道PowerShell中的-DefaultCredential如何工作,因此我回到了绘图板上。
我应该如何调查? 我一定在这个Java代码中犯了一些基本的错误。 流程不正确。 那是我的假设。
因此,这是从Apache HttpClient连接到SharePoint 2010的代码。工作站ID是我使用Citrix XenDesktop登录Windows计算机时使用的ID。 我可以获得我的REST Get请求的结果。
这使用NTLM身份验证。
DefaultHttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://teams.host.com/_vti_bin/listdata.svc/");
NTCredentials credentials = new NTCredentials("user", 'pass', "workstation", "Domain");
client.getCredentialsProvider().setCredentials(new AuthScope("teams.host.com",80), credentials);
HttpResponse response = client.execute(request);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.