繁体   English   中英

SharePoint 2010 REST Java身份验证

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM