diff --git a/pom.xml b/pom.xml
index 22ae0dd..d9878eb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,31 +32,28 @@
http://github.com/kikovalle
-
+
- 8
+ 17
- 6.0.0
- 2.8.1
- 5.1.3
- 2.11.0
- 2.0.2
- 20220924
- [31.1-jre,)
+ 6.1.14
+ 5.4
+ 2.17.0
+ 2.0.16
+ 20240303
+ 33.3.1-jre
4.13.2
- 7.6.1
- 1.33
- 2.9.1
- 4.5.13
- 4.0.0
+ 7.10.2
+ 2.11.0
+ 4.0.2
- 3.2.1
- 3.4.1
- 3.10.1
- 1.6.13
- 1.6
+ 3.3.1
+ 3.10.1
+ 3.13.0
+ 1.7.0
+ 3.2.7
@@ -170,32 +167,13 @@
testng
${testng.version}
test
-
-
-
- org.yaml
- snakeyaml
-
-
-
-
-
- org.yaml
- snakeyaml
- ${snakeyaml.version}
-
com.google.code.gson
gson
${gson.version}
compile
-
- org.apache.httpcomponents
- httpmime
- ${httpmime.version}
-
jakarta.xml.ws
diff --git a/src/main/java/com/panxoloto/sharepoint/rest/PLGSharepointClientOnline.java b/src/main/java/com/panxoloto/sharepoint/rest/PLGSharepointClientOnline.java
index 3fb47fe..3727ed6 100644
--- a/src/main/java/com/panxoloto/sharepoint/rest/PLGSharepointClientOnline.java
+++ b/src/main/java/com/panxoloto/sharepoint/rest/PLGSharepointClientOnline.java
@@ -7,9 +7,9 @@
import java.util.Objects;
import java.util.function.Supplier;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClientBuilder;
-import org.apache.http.impl.client.HttpClients;
+import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
+import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
+import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
@@ -681,7 +681,7 @@ public JSONObject createFolder(String baseFolderRemoteRelativeUrl, String folder
@Override
public JSONObject moveFolder(String sourceRelativeServerUrl, String destinyRelativeServerUrl) throws Exception {
- LOG.debug("createFolder sourceRelativeServerUrl {} destinyRelativeServerUrl {}", sourceRelativeServerUrl, destinyRelativeServerUrl);
+ LOG.debug("moveFolder sourceRelativeServerUrl {} destinyRelativeServerUrl {}", sourceRelativeServerUrl, destinyRelativeServerUrl);
headers = headerHelper.getPostHeaders("");
RequestEntity requestEntity = new RequestEntity<>("",
@@ -703,7 +703,7 @@ public JSONObject moveFolder(String sourceRelativeServerUrl, String destinyRelat
*/
@Override
public JSONObject moveFile(String sourceRelativeServerUrl, String destinyRelativeServerUrl) throws Exception {
- LOG.debug("createFolder sourceRelativeServerUrl {} destinyRelativeServerUrl {}", sourceRelativeServerUrl, destinyRelativeServerUrl);
+ LOG.debug("moveFile sourceRelativeServerUrl {} destinyRelativeServerUrl {}", sourceRelativeServerUrl, destinyRelativeServerUrl);
headers = headerHelper.getPostHeaders("");
RequestEntity requestEntity = new RequestEntity<>("",
diff --git a/src/main/java/com/panxoloto/sharepoint/rest/PLGSharepointOnPremisesClient.java b/src/main/java/com/panxoloto/sharepoint/rest/PLGSharepointOnPremisesClient.java
index 759669c..fa2f62a 100644
--- a/src/main/java/com/panxoloto/sharepoint/rest/PLGSharepointOnPremisesClient.java
+++ b/src/main/java/com/panxoloto/sharepoint/rest/PLGSharepointOnPremisesClient.java
@@ -1,17 +1,23 @@
package com.panxoloto.sharepoint.rest;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.function.Supplier;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.NTCredentials;
-import org.apache.http.client.CredentialsProvider;
-import org.apache.http.impl.client.BasicCredentialsProvider;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClientBuilder;
-import org.apache.http.impl.client.HttpClients;
+import org.apache.hc.client5.http.auth.AuthSchemeFactory;
+import org.apache.hc.client5.http.auth.AuthScope;
+import org.apache.hc.client5.http.auth.NTCredentials;
+import org.apache.hc.client5.http.auth.StandardAuthScheme;
+import org.apache.hc.client5.http.config.RequestConfig;
+import org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider;
+import org.apache.hc.client5.http.impl.auth.NTLMSchemeFactory;
+import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
+import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
+import org.apache.hc.client5.http.impl.classic.HttpClients;
+import org.apache.hc.core5.http.config.Lookup;
+import org.apache.hc.core5.http.config.RegistryBuilder;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
@@ -60,10 +66,17 @@ public PLGSharepointOnPremisesClient(String user,
String passwd, String domain, String spSiteUrl, String spSitePrefix) {
super();
- CredentialsProvider credsProvider = new BasicCredentialsProvider();
- credsProvider.setCredentials(AuthScope.ANY, new NTCredentials(user, passwd, spSiteUrl, domain));
+ BasicCredentialsProvider credsProvider = new BasicCredentialsProvider();
+ credsProvider.setCredentials(new AuthScope(null, -1), new NTCredentials(user, passwd.toCharArray(), spSiteUrl, domain));
+ Lookup authSchemeRegistry = RegistryBuilder.create()
+ .register(StandardAuthScheme.NTLM, new NTLMSchemeFactory()).build();
+ RequestConfig requestConfig = RequestConfig.custom()
+ .setTargetPreferredAuthSchemes(Collections.singletonList(StandardAuthScheme.NTLM)).build();
+
CloseableHttpClient httpClient = httpClientBuilderSupplier.get()
.setDefaultCredentialsProvider(credsProvider)
+ .setDefaultAuthSchemeRegistry(authSchemeRegistry)
+ .setDefaultRequestConfig(requestConfig)
.build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
requestFactory.setHttpClient(httpClient);
@@ -565,7 +578,11 @@ public JSONObject uploadFile(String folder, Resource resource, String fileName,
MultiValueMap headers = headerHelper.getPostHeaders("");
headers.remove("Content-Length");
- RequestEntity requestEntity = new RequestEntity<>(resource,
+ byte[] bytes = resource.getContentAsByteArray();
+ headers.add("Content-Length","" + bytes.length);
+ LOG.debug("Content-Length {}", bytes.length);
+
+ RequestEntity requestEntity = new RequestEntity<>(bytes,
headers, HttpMethod.POST,
this.tokenHelper.getSharepointSiteUrl(
"/_api/web/GetFolderByServerRelativeUrl('" + folder
@@ -719,7 +736,7 @@ public JSONObject createFolder(String baseFolderRemoteRelativeUrl, String folder
*/
@Override
public JSONObject moveFolder(String sourceRelativeServerUrl, String destinyRelativeServerUrl) throws Exception {
- LOG.debug("createFolder sourceRelativeServerUrl {} destinyRelativeServerUrl {}", new Object[] {sourceRelativeServerUrl, destinyRelativeServerUrl});
+ LOG.debug("moveFolder sourceRelativeServerUrl {} destinyRelativeServerUrl {}", new Object[] {sourceRelativeServerUrl, destinyRelativeServerUrl});
MultiValueMap headers = headerHelper.getPostHeaders("");
RequestEntity requestEntity = new RequestEntity<>("",
@@ -741,7 +758,7 @@ public JSONObject moveFolder(String sourceRelativeServerUrl, String destinyRelat
*/
@Override
public JSONObject moveFile(String sourceRelativeServerUrl, String destinyRelativeServerUrl) throws Exception {
- LOG.debug("createFolder sourceRelativeServerUrl {} destinyRelativeServerUrl {}", new Object[] {sourceRelativeServerUrl, destinyRelativeServerUrl});
+ LOG.debug("moveFile sourceRelativeServerUrl {} destinyRelativeServerUrl {}", new Object[] {sourceRelativeServerUrl, destinyRelativeServerUrl});
MultiValueMap headers = headerHelper.getPostHeaders("");
RequestEntity requestEntity = new RequestEntity<>("",
diff --git a/src/main/java/com/panxoloto/sharepoint/rest/StreamRestTemplate.java b/src/main/java/com/panxoloto/sharepoint/rest/StreamRestTemplate.java
index 05424a5..c8bfb1f 100644
--- a/src/main/java/com/panxoloto/sharepoint/rest/StreamRestTemplate.java
+++ b/src/main/java/com/panxoloto/sharepoint/rest/StreamRestTemplate.java
@@ -12,7 +12,7 @@
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpRequest;
-import org.springframework.http.HttpStatus;
+import org.springframework.http.HttpStatusCode;
import org.springframework.http.ResponseEntity;
import org.springframework.http.client.ClientHttpRequestExecution;
import org.springframework.http.client.ClientHttpRequestFactory;
@@ -91,13 +91,13 @@ public DeferredCloseClientHttpResponse(ClientHttpResponse delegate) {
private boolean isStream = false;
@Override
- public HttpStatus getStatusCode() throws IOException {
+ public HttpStatusCode getStatusCode() throws IOException {
return delegate.getStatusCode();
}
@Override
public int getRawStatusCode() throws IOException {
- return delegate.getRawStatusCode();
+ return delegate.getStatusCode().value();
}
@Override
diff --git a/src/main/java/com/panxoloto/sharepoint/rest/helper/AuthTokenHelperOnline.java b/src/main/java/com/panxoloto/sharepoint/rest/helper/AuthTokenHelperOnline.java
index ce33aee..539d159 100644
--- a/src/main/java/com/panxoloto/sharepoint/rest/helper/AuthTokenHelperOnline.java
+++ b/src/main/java/com/panxoloto/sharepoint/rest/helper/AuthTokenHelperOnline.java
@@ -10,8 +10,8 @@
import javax.xml.transform.TransformerException;
-import org.apache.http.impl.client.HttpClientBuilder;
-import org.apache.http.impl.client.HttpClients;
+import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
+import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
diff --git a/src/main/java/com/panxoloto/sharepoint/rest/helper/CloudTokenForClientIdGetter.java b/src/main/java/com/panxoloto/sharepoint/rest/helper/CloudTokenForClientIdGetter.java
index 06dd37f..3f01ce5 100644
--- a/src/main/java/com/panxoloto/sharepoint/rest/helper/CloudTokenForClientIdGetter.java
+++ b/src/main/java/com/panxoloto/sharepoint/rest/helper/CloudTokenForClientIdGetter.java
@@ -9,20 +9,20 @@
import java.util.function.Supplier;
import org.apache.commons.io.IOUtils;
-import org.apache.http.Header;
-import org.apache.http.HeaderElement;
-import org.apache.http.HttpEntity;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.entity.ContentType;
-import org.apache.http.entity.mime.HttpMultipartMode;
-import org.apache.http.entity.mime.MultipartEntityBuilder;
-import org.apache.http.entity.mime.content.StringBody;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClientBuilder;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.protocol.HttpContext;
+import org.apache.hc.client5.http.classic.methods.HttpGet;
+import org.apache.hc.client5.http.classic.methods.HttpPost;
+import org.apache.hc.client5.http.entity.mime.HttpMultipartMode;
+import org.apache.hc.client5.http.entity.mime.MultipartEntityBuilder;
+import org.apache.hc.client5.http.entity.mime.StringBody;
+import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
+import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
+import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
+import org.apache.hc.client5.http.impl.classic.HttpClients;
+import org.apache.hc.core5.http.ContentType;
+import org.apache.hc.core5.http.Header;
+import org.apache.hc.core5.http.HttpEntity;
+import org.apache.hc.core5.http.HttpHeaders;
+import org.apache.hc.core5.http.protocol.HttpContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -74,20 +74,17 @@ public String getToken() {
private void getTenantId() throws Exception {
String url = siteURL+"/_vti_bin/client.svc/";
HttpGet get = new HttpGet(url);
- get.setHeader(org.apache.http.HttpHeaders.AUTHORIZATION, "Bearer");
+ get.setHeader(HttpHeaders.AUTHORIZATION, "Bearer");
CloseableHttpClient httpClient = httpClientBuilderSupplier.get().build();
try (CloseableHttpResponse response = httpClient.execute(get, (HttpContext) null)) {
Header[] headers = response.getHeaders("WWW-Authenticate");
for (Header h : headers) {
- HeaderElement[] elements = h.getElements();
- for (HeaderElement e : elements) {
- if ("Bearer realm".equals(e.getName())) {
- spOnlineRealm = e.getValue();
- }
- if ("client_id".equals(e.getName())) {
- spOnlineClientId = e.getValue();
- }
+ if ("Bearer realm".equals(h.getName())) {
+ spOnlineRealm = h.getValue();
+ }
+ if ("client_id".equals(h.getName())) {
+ spOnlineClientId = h.getValue();
}
}
}
@@ -124,7 +121,7 @@ private HttpEntity fillInSPOnlineTokenRequestData() throws MalformedURLException
String resourceStr = spOnlineClientId + "/" + url.getHost() + "@" + spOnlineRealm;
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
- builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
+ builder.setMode(HttpMultipartMode.LEGACY);
StringBody stringBody = new StringBody("client_credentials", ContentType.MULTIPART_FORM_DATA);
builder.addPart("grant_type", stringBody);
stringBody = new StringBody(clientId, ContentType.MULTIPART_FORM_DATA);
diff --git a/src/main/java/com/panxoloto/sharepoint/rest/helper/HeadersOnPremiseHelper.java b/src/main/java/com/panxoloto/sharepoint/rest/helper/HeadersOnPremiseHelper.java
index a0272b1..f7f9b6b 100644
--- a/src/main/java/com/panxoloto/sharepoint/rest/helper/HeadersOnPremiseHelper.java
+++ b/src/main/java/com/panxoloto/sharepoint/rest/helper/HeadersOnPremiseHelper.java
@@ -1,6 +1,6 @@
package com.panxoloto.sharepoint.rest.helper;
-import org.apache.http.HttpHeaders;
+import org.apache.hc.core5.http.HttpHeaders;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;