Compare commits

...

1 Commits

Author SHA1 Message Date
Tiago Salvado
e63ad92ed9 [MNT-23241] Prevent duplicated default headers based on override flag 2022-09-28 18:29:37 +01:00
3 changed files with 37 additions and 3 deletions

View File

@@ -203,7 +203,18 @@ public abstract class AbstractHttpClient implements AlfrescoHttpClient
}
}
/*
* @see AlfrescoHttpClient#setOverrideDefaultHeaders(boolean)
*/
public void setOverrideDefaultHeaders(boolean override)
{
if (httpClient != null)
{
if (httpClient instanceof RequestHeadersHttpClient)
{
((RequestHeadersHttpClient) httpClient).setOverrideDefaultHeaders(override);
}
}
}
}

View File

@@ -27,4 +27,13 @@ public interface AlfrescoHttpClient
*
*/
public void close();
/**
* Allows to override (or not) the default headers that will be included in HTTP requests
*
* @param override
* if true, it will prevent the default headers to be duplicated, otherwise the request may contain
* multiple instances of the same header
*/
public void setOverrideDefaultHeaders(boolean override);
}

View File

@@ -21,6 +21,7 @@ package org.alfresco.httpclient;
import java.io.IOException;
import java.util.Map;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
@@ -36,6 +37,8 @@ public class RequestHeadersHttpClient extends HttpClient
{
private Map<String, String> defaultHeaders;
private boolean overrideDefaultHeaders = false;
public RequestHeadersHttpClient(MultiThreadedHttpConnectionManager connectionManager)
{
@@ -57,7 +60,14 @@ public class RequestHeadersHttpClient extends HttpClient
if (defaultHeaders != null)
{
defaultHeaders.forEach((k,v) -> {
method.addRequestHeader(k, v);
if (overrideDefaultHeaders)
{
method.setRequestHeader(k, v);
}
else
{
method.addRequestHeader(k, v);
}
});
}
}
@@ -84,4 +94,8 @@ public class RequestHeadersHttpClient extends HttpClient
return super.executeMethod(hostconfig, method, state);
}
public void setOverrideDefaultHeaders(boolean overrideDefaultHeaders)
{
this.overrideDefaultHeaders = overrideDefaultHeaders;
}
}