JavaアプリケーションはSharePoint 2013にアクセスする必要がありますREST API https://msdn.Microsoft.com/en-us/library/office/jj860569.aspx
ベーシック認証を使用したいですか:
Webでの残りのAPIの使用例はたくさんありますが、認証を扱っているようには見えません。たぶん、ここには本当に簡単なものが足りない。
これはPOSTMANを介して手動で機能します。 http://tech.bool.se/basic-rest-request-sharepoint-using-postman/ ですが、ユーザー名とパスワードをブラウザーに入力する必要があります。
私はこれを実装しようとしました: HttpClientBuilder basic auth using
<dependency>
<groupId>org.Apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4.1</version>
</dependency>
これにより、->警告:NTLM認証エラー:資格情報をNTLM認証に使用できません:org.Apache.http.auth.UsernamePasswordCredentials
トリックをしてくれた@fateddyに感謝します。NTCredentials(、、、);の場合、UsernamePasswordCredentials( "username"、 "password")););
これを使用する maven依存関係 :
<dependency>
<groupId>org.Apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4.1</version>
</dependency>
SharePointへの認証は機能します。
import org.Apache.http.client.CredentialsProvider;
import org.Apache.http.auth.AuthScope;
import org.Apache.http.impl.client.BasicCredentialsProvider;
import org.Apache.http.auth.NTCredentials;
import org.Apache.http.impl.client.CloseableHttpClient;
import org.Apache.http.impl.client.HttpClients;
import org.Apache.http.client.methods.HttpGet;
import org.Apache.http.client.methods.CloseableHttpResponse;
import org.Apache.http.util.EntityUtils;
public class SharePointClientAuthentication {
public static void main(String[] args) throws Exception {
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
new AuthScope(AuthScope.ANY),
new NTCredentials("username", "password", "https://hostname", "domain"));
CloseableHttpClient httpclient = HttpClients.custom()
.setDefaultCredentialsProvider(credsProvider)
.build();
try {
HttpGet httpget = new HttpGet("http://hostname/_api/web/lists");
System.out.println("Executing request " + httpget.getRequestLine());
CloseableHttpResponse response = httpclient.execute(httpget);
try {
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
EntityUtils.consume(response.getEntity());
} finally {
response.close();
}
} finally {
httpclient.close();
}
}
}
そして、あなたは次のようになります:HTTP/1.1 200 OK