Author: midon
Date: Thu Apr 23 23:21:19 2009
New Revision: 768094
URL: http://svn.apache.org/viewvc?rev=768094&view=rev
Log:
ODE-591: expect a valid request but do not fail if namespaces are not correct.
Modified:
ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
Modified:
ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
URL:
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java?rev=768094&r1=768093&r2=768094&view=diff
==============================================================================
---
ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
(original)
+++
ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
Thu Apr 23 23:21:19 2009
@@ -47,6 +47,7 @@
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.engine.AxisConfiguration;
import org.apache.axis2.engine.AxisEngine;
import org.apache.axis2.receivers.AbstractMessageReceiver;
@@ -61,6 +62,7 @@
import org.apache.ode.bpel.iapi.ProcessStore;
import org.apache.ode.il.OMUtils;
import org.apache.ode.utils.fs.FileUtils;
+import org.apache.ode.utils.Namespaces;
/**
* Axis wrapper for process deployment.
@@ -110,9 +112,30 @@
try {
if (operation.equals("deploy")) {
OMElement deployElement =
messageContext.getEnvelope().getBody().getFirstElement();
- OMElement namePart = deployElement.getFirstElement();
- OMElement packagePart =
deployElement.getFirstChildWithName(new
QName("http://www.apache.org/ode/pmapi/types/2006/08/02/", "package"));
- OMElement zip = (packagePart == null) ? null :
packagePart.getFirstChildWithName(new
QName("http://www.apache.org/ode/pmapi/types/2006/08/02/", "zip"));
+ OMElement namePart =
deployElement.getFirstChildWithName(new QName(null, "name"));
+ OMElement packagePart =
deployElement.getFirstChildWithName(new QName(null, "package"));
+
+ // "be liberal in what you accept from others"
+ if (packagePart == null) {
+ packagePart =
OMUtils.getFirstChildWithName(deployElement, "package");
+ if (packagePart != null && __log.isWarnEnabled()) {
+ __log.warn("Invalid incoming request detected for
operation " + messageContext.getAxisOperation().getName() + ". Package part
should have no namespace but has " + packagePart.getQName().getNamespaceURI());
+ }
+ }
+
+ OMElement zip = null;
+ if (packagePart != null) {
+ zip = packagePart.getFirstChildWithName(new
QName(Namespaces.ODE_DEPLOYAPI_NS, "zip"));
+ // "be liberal in what you accept from others"
+ if (zip == null) {
+ zip = OMUtils.getFirstChildWithName(packagePart,
"zip");
+ if (zip != null && __log.isWarnEnabled()) {
+ String ns = zip.getQName().getNamespaceURI()
== null || zip.getQName().getNamespaceURI().length() == 0 ? "empty" :
zip.getQName().getNamespaceURI();
+ __log.warn("Invalid incoming request detected
for operation " + messageContext.getAxisOperation().getName() + ". <zip/>
element namespace should be " + Namespaces.ODE_DEPLOYAPI_NS + " but was " + ns);
+ }
+ }
+ }
+
if (zip == null || packagePart == null)
throw new OdeFault("Your message should contain an
element named 'package' with a 'zip' element");
Modified:
ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
URL:
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java?rev=768094&r1=768093&r2=768094&view=diff
==============================================================================
---
ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
(original)
+++
ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
Thu Apr 23 23:21:19 2009
@@ -52,6 +52,18 @@
*/
public class OMUtils {
+ public static OMElement getFirstChildWithName(OMElement parent, String
name) {
+ if (parent == null)
+ throw new IllegalArgumentException("null parent");
+ if (name == null)
+ throw new IllegalArgumentException("null name");
+ for (Iterator it = parent.getChildElements(); it.hasNext();) {
+ OMElement e = (OMElement) it.next();
+ if (name.equals(e.getQName().getLocalPart())) return e;
+ }
+ return null;
+ }
+
public static Element toDOM(OMElement element) {
return toDOM(element, DOMUtils.newDocument());
}