2017-10-23 1 views
0

PowerShellを使用してSharePointにアクセスしてもよかったです。ちょうど - デフォートクレデンシャルを選んだので、私はそれについて心配する必要はありませんでした。それは試作用のものでした。SharePoint 2010 REST Java認証

私の実際のコードはJavaです。今私はこれについて全く分かりません。

私はREST呼び出しを行いますが、正しく認証されなければSOAPでも失敗します。

方法1:NTLM

ここで私はわからないです唯一のものは、ワークステーションのIDです。私はVMにCitrixを使ってログインしており、明示的なワークステーション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コードでいくつかの基本的な間違いをしているに違いない。流れは正しくありません。それが私の想いです。

答えて

0

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); 
関連する問題