ode-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From va...@apache.org
Subject [1/3] git commit: backporting ODE-509 in order to fix a security policy regression introduced by the upgrade to Axis 1.5.2.
Date Sun, 25 Aug 2013 22:17:23 GMT
Updated Branches:
  refs/heads/ode-1.3.6.x 0e4014696 -> d65df2fc5


backporting ODE-509 in order to fix a security policy regression introduced by the upgrade
to Axis 1.5.2.


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

Branch: refs/heads/ode-1.3.6.x
Commit: ae56a9d08d29b0d20dfc8f49af085bf653c2027a
Parents: f55603d
Author: Tammo van Lessen <tvanlessen@gmail.com>
Authored: Mon Aug 26 00:14:31 2013 +0200
Committer: Tammo van Lessen <tvanlessen@gmail.com>
Committed: Mon Aug 26 00:14:31 2013 +0200

----------------------------------------------------------------------
 .../axis2/hooks/ODEAxisOperationDispatcher.java | 18 +++++++-----
 .../axis2/hooks/ODEAxisServiceDispatcher.java   | 29 +++++++++++++++-----
 2 files changed, 33 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ode/blob/ae56a9d0/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisOperationDispatcher.java
----------------------------------------------------------------------
diff --git a/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisOperationDispatcher.java
b/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisOperationDispatcher.java
index 63c52a6..5354872 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisOperationDispatcher.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisOperationDispatcher.java
@@ -19,22 +19,20 @@
 
 package org.apache.ode.axis2.hooks;
 
+import javax.xml.namespace.QName;
+
 import org.apache.axiom.om.OMElement;
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.HandlerDescription;
 import org.apache.axis2.engine.AbstractDispatcher;
-import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.i18n.Messages;
 import org.apache.commons.collections.map.MultiKeyMap;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import javax.xml.namespace.QName;
-
 /**
  * Dispatches the service based on the information from the target endpoint URL.
  */
@@ -55,7 +53,9 @@ public class ODEAxisOperationDispatcher extends AbstractDispatcher {
         // way to identify the operation.
         String action = messageContext.getWSAAction();
         if (action != null) {
-            log.debug(Messages.getMessage("checkingoperation", action));
+            if (log.isDebugEnabled()) {
+                log.debug(Messages.getMessage("checkingoperation", action));
+            }
             operation = service.getOperationByAction(action);
             if (operation != null)
                 return operation;
@@ -67,11 +67,15 @@ public class ODEAxisOperationDispatcher extends AbstractDispatcher {
         OMElement bodyFirstChild = messageContext.getEnvelope().getBody().getFirstElement();
         if (bodyFirstChild != null) {
             String localName = bodyFirstChild.getLocalName();
-            log.debug("Checking for Operation using SOAP message body's first child's local
name : "
+            if (log.isDebugEnabled()) {
+                log.debug("Checking for Operation using SOAP message body's first child's
local name : "
                             + localName);
+            }
             operation = service.getOperation(new QName(localName));
             if (operation != null) {
-                log.debug("Found operation " + operation);
+                if (log.isDebugEnabled()) {
+                    log.debug("Found operation " + operation);
+                }
                 return operation;
             }
 

http://git-wip-us.apache.org/repos/asf/ode/blob/ae56a9d0/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisServiceDispatcher.java
----------------------------------------------------------------------
diff --git a/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisServiceDispatcher.java
b/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisServiceDispatcher.java
index 2943443..e52d971 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisServiceDispatcher.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisServiceDispatcher.java
@@ -19,7 +19,10 @@
 
 package org.apache.ode.axis2.hooks;
 
-import org.apache.axiom.om.OMElement;
+import java.util.ArrayList;
+
+import javax.xml.namespace.QName;
+
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.MessageContext;
@@ -28,12 +31,12 @@ import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.HandlerDescription;
 import org.apache.axis2.engine.AbstractDispatcher;
 import org.apache.axis2.engine.AxisConfiguration;
-import org.apache.axis2.i18n.Messages;
-import org.apache.commons.collections.map.MultiKeyMap;
+import org.apache.axis2.util.PolicyUtil;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-
-import javax.xml.namespace.QName;
+import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyComponent;
+import org.apache.rampart.RampartMessageData;
 
 /**
  * Dispatches the service based on the information from the target endpoint URL.
@@ -59,7 +62,9 @@ public class ODEAxisServiceDispatcher extends AbstractDispatcher {
         EndpointReference toEPR = messageContext.getTo();
 
         if (toEPR != null) {
-            log.debug("Checking for Service using target endpoint address : " + toEPR.getAddress());
+            if (log.isDebugEnabled()) {
+                log.debug("Checking for Service using target endpoint address : " + toEPR.getAddress());
+            }
 
             // The only thing we understand if a service name that
             // follows /processes/ in the request URL.
@@ -69,7 +74,17 @@ public class ODEAxisServiceDispatcher extends AbstractDispatcher {
                         messageContext.getConfigurationContext().getAxisConfiguration();
                 AxisService service = registry.getService(path);
                 if (service!=null) {
-                    log.debug("Found service in registry from name " + path + ": " + service);
+                    if (log.isDebugEnabled()) {
+                        log.debug("Found service in registry from name " + path + ": " +
service);
+                    }
+                    // Axis2 >1.3 is less clever than 1.3. See ODE-509
+                    // We have to do additional work for him.
+                    // TODO: Check if there is a better workaround possible.
+                    Policy policy = PolicyUtil.getMergedPolicy(new ArrayList<PolicyComponent>(service.getPolicySubject().getAttachedPolicyComponents()),
service);
+                    if (policy != null) {
+                        if (log.isDebugEnabled()) log.debug("Apply policy: " + policy.getName());
+                        messageContext.setProperty(RampartMessageData.KEY_RAMPART_POLICY,
policy);
+                    }
                     return service;
                 }
             }


Mime
View raw message