cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From asold...@apache.org
Subject git commit: [CXF-5602] Create HttpServletRequestSnapshot for requests with WSA ReplyTo prop set
Date Tue, 11 Mar 2014 15:07:37 GMT
Repository: cxf
Updated Branches:
  refs/heads/2.7.x-fixes ccf4df5f2 -> 3e4d51342


[CXF-5602] Create HttpServletRequestSnapshot for requests with WSA ReplyTo prop set


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/3e4d5134
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/3e4d5134
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/3e4d5134

Branch: refs/heads/2.7.x-fixes
Commit: 3e4d5134297cc341d93987240708a51e165e5ca1
Parents: ccf4df5
Author: Alessio Soldano <asoldano@redhat.com>
Authored: Tue Mar 11 15:55:37 2014 +0100
Committer: Alessio Soldano <asoldano@redhat.com>
Committed: Tue Mar 11 15:59:51 2014 +0100

----------------------------------------------------------------------
 .../cxf/transport/http/AbstractHTTPDestination.java      | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/3e4d5134/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
----------------------------------------------------------------------
diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
index 0c0be97..68b7ae5 100644
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
@@ -74,6 +74,8 @@ import org.apache.cxf.transport.http.policy.impl.ServerPolicyCalculator;
 import org.apache.cxf.transport.https.CertConstraints;
 import org.apache.cxf.transport.https.CertConstraintsInterceptor;
 import org.apache.cxf.transports.http.configuration.HTTPServerPolicy;
+import org.apache.cxf.ws.addressing.AddressingProperties;
+import org.apache.cxf.ws.addressing.ContextUtils;
 import org.apache.cxf.ws.addressing.EndpointReferenceType;
 import org.apache.cxf.wsdl.EndpointReferenceUtils;
 import org.apache.cxf.wsdl.WSDLLibrary;
@@ -274,8 +276,9 @@ public abstract class AbstractHTTPDestination
         final Exchange exchange = inMessage.getExchange();
         DelegatingInputStream in = new DelegatingInputStream(req.getInputStream()) {
             public void cacheInput() {
-                if (!cached && exchange.isOneWay()) {
-                    //For one-ways, we need to cache the values of the HttpServletRequest
+                if (!cached && (exchange.isOneWay() || isWSAddressingReplyToSpecified(exchange)))
{
+                    //For one-ways and WS-Addressing invocations with ReplyTo address,
+                    //we need to cache the values of the HttpServletRequest
                     //so they can be queried later for things like paths and schemes 
                     //and such like that.                   
                     //Please note, exchange used to always get the "current" message
@@ -283,6 +286,10 @@ public abstract class AbstractHTTPDestination
                 }
                 super.cacheInput();
             }
+            private boolean isWSAddressingReplyToSpecified(Exchange ex) {
+                AddressingProperties map = ContextUtils.retrieveMAPs(ex.getInMessage(), false,
false, false);
+                return map != null && !ContextUtils.isGenericAddress(map.getReplyTo());
+            }
         };
         
         inMessage.setContent(DelegatingInputStream.class, in);


Mime
View raw message