You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2015/08/13 14:07:46 UTC
cxf git commit: [CXF-6528] Adding a property for users to disable
sending CT with empty requests
Repository: cxf
Updated Branches:
refs/heads/master 6ba43377b -> 610791147
[CXF-6528] Adding a property for users to disable sending CT with empty requests
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/61079114
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/61079114
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/61079114
Branch: refs/heads/master
Commit: 61079114761b1a4a9898902ed07e5203bf5dd31c
Parents: 6ba4337
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Thu Aug 13 13:07:26 2015 +0100
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Thu Aug 13 13:07:26 2015 +0100
----------------------------------------------------------------------
.../org/apache/cxf/transport/http/Headers.java | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/61079114/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java
----------------------------------------------------------------------
diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java
index 3afb67a..3a4f7af 100644
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java
@@ -67,7 +67,7 @@ public class Headers {
public static final String HTTP_HEADERS_SETCOOKIE = "Set-Cookie";
public static final String HTTP_HEADERS_LINK = "Link";
public static final String EMPTY_REQUEST_PROPERTY = "org.apache.cxf.empty.request";
- private static final String USE_ASYNC_PROPERTY = "use.async.http.conduit";
+ private static final String SET_EMPTY_REQUEST_CT_PROPERTY = "set.content.type.for.empty.request";
private static final TimeZone TIME_ZONE_GMT = TimeZone.getTimeZone("GMT");
private static final Logger LOG = LogUtils.getL7dLogger(Headers.class);
@@ -297,14 +297,21 @@ public class Headers {
* @throws IOException
*/
public void setProtocolHeadersInConnection(HttpURLConnection connection) throws IOException {
+ // If no Content-Type is set for empty requests then HttpUrlConnection:
+ // - sets a form Content-Type for empty POST
+ // - replaces custom Accept value with */* if HTTP proxy is used
+
+ boolean dropContentType = false;
boolean emptyRequest = PropertyUtils.isTrue(message.get(EMPTY_REQUEST_PROPERTY));
- // HttpUrlConnection sets a form Content-Type and completely loses custom Accept
- // if HTTP proxies are used if no Content-Type is set for empty requests
- boolean asyncConduitUsed = PropertyUtils.isTrue(message.get(USE_ASYNC_PROPERTY));
- if (!asyncConduitUsed || !emptyRequest) {
+ if (emptyRequest) {
+ // drop only if a user explicitly requested it by setting the property to false
+ dropContentType = !MessageUtils.getContextualBoolean(message, SET_EMPTY_REQUEST_CT_PROPERTY, true);
+ }
+ if (!dropContentType) {
String ct = emptyRequest ? "*/*" : determineContentType();
connection.setRequestProperty(HttpHeaderHelper.CONTENT_TYPE, ct);
}
+
transferProtocolHeadersToURLConnection(connection);
logProtocolHeaders(Level.FINE);