You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mi...@apache.org on 2008/07/14 20:41:02 UTC
svn commit: r676677 - in /ode/branches/APACHE_ODE_1.X/axis2/src:
main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java
main/java/org/apache/ode/axis2/httpbinding/Messages.java
test/resources/http-binding-validator.wsdl
Author: midon
Date: Mon Jul 14 11:41:01 2008
New Revision: 676677
URL: http://svn.apache.org/viewvc?rev=676677&view=rev
Log:
check that <mime:content type=""/> is not empty
Modified:
ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java
ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/Messages.java
ode/branches/APACHE_ODE_1.X/axis2/src/test/resources/http-binding-validator.wsdl
Modified: ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java?rev=676677&r1=676676&r2=676677&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java (original)
+++ ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java Mon Jul 14 11:41:01 2008
@@ -20,6 +20,9 @@
package org.apache.ode.axis2.httpbinding;
import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.lang.StringUtils;
import org.apache.ode.utils.wsdl.WsdlUtils;
import javax.wsdl.Binding;
@@ -64,7 +67,7 @@
protected void validateOperation(BindingOperation bindingOperation) {
String verb = WsdlUtils.resolveVerb(binding, bindingOperation);
- if(verb==null){
+ if (verb == null) {
throw new IllegalArgumentException(httpMsgs.msgMissingVerb(binding, bindingOperation));
}
if (!"GET".equalsIgnoreCase(verb)
@@ -77,8 +80,13 @@
BindingOutput output = bindingOperation.getBindingOutput();
MIMEContent outputContent = WsdlUtils.getMimeContent(output.getExtensibilityElements());
- if (outputContent!=null && !outputContent.getType().endsWith("text/xml")) {
- throw new IllegalArgumentException(httpMsgs.msgUnsupportedContentType(binding, bindingOperation));
+ if (outputContent != null) {
+ if (StringUtils.isEmpty(outputContent.getType())) {
+ throw new IllegalArgumentException(httpMsgs.msgEmptyContentType(binding, bindingOperation));
+ }
+ if (!outputContent.getType().endsWith("text/xml")) {
+ throw new IllegalArgumentException(httpMsgs.msgUnsupportedContentType(binding, bindingOperation));
+ }
}
BindingInput input = bindingOperation.getBindingInput();
@@ -89,9 +97,12 @@
}
// only 2 content-types supported
- MIMEContent inputContent= WsdlUtils.getMimeContent(input.getExtensibilityElements());
+ MIMEContent inputContent = WsdlUtils.getMimeContent(input.getExtensibilityElements());
if (inputContent != null) {
String inputContentType = inputContent.getType();
+ if (StringUtils.isEmpty(inputContentType)) {
+ throw new IllegalArgumentException(httpMsgs.msgEmptyContentType(binding, bindingOperation));
+ }
if (!inputContentType.endsWith("text/xml") && !PostMethod.FORM_URL_ENCODED_CONTENT_TYPE.equalsIgnoreCase(inputContentType)) {
throw new IllegalArgumentException(httpMsgs.msgUnsupportedContentType(binding, bindingOperation));
}
Modified: ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/Messages.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/Messages.java?rev=676677&r1=676676&r2=676677&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/Messages.java (original)
+++ ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/httpbinding/Messages.java Mon Jul 14 11:41:01 2008
@@ -43,8 +43,12 @@
return format("This binding does not use http:binding: {0}" + binding.getQName());
}
+ public String msgEmptyContentType(Binding binding, BindingOperation operation) {
+ return format("MIME Content Type is empty! binding: {0} operation: {1}", binding.getQName(), operation.getName());
+ }
+
public String msgUnsupportedContentType(Binding binding, BindingOperation operation) {
- return format("Unsupported content-type!binding: {0} operation: {1}", binding.getQName(), operation.getName());
+ return format("Unsupported content-type! binding: {0} operation: {1}", binding.getQName(), operation.getName());
}
public String msgInvalidURIPattern() {
Modified: ode/branches/APACHE_ODE_1.X/axis2/src/test/resources/http-binding-validator.wsdl
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/axis2/src/test/resources/http-binding-validator.wsdl?rev=676677&r1=676676&r2=676677&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/axis2/src/test/resources/http-binding-validator.wsdl (original)
+++ ode/branches/APACHE_ODE_1.X/axis2/src/test/resources/http-binding-validator.wsdl Mon Jul 14 11:41:01 2008
@@ -172,21 +172,6 @@
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:binding name="DummyServiceHttpBinding_put+whatever-content-type" type="ns1:DummyServicePortType">
- <wsdl:documentation>
- shouldFail # Only application/x-www-form-urlencoded and text/xml should be supported
- </wsdl:documentation>
- <http:binding verb="PUT"/>
- <wsdl:operation name="hello">
- <http:operation location="DummyService/hello"/>
- <wsdl:input>
- <mime:content type="whatever-content-type" part="TestPart"/>
- </wsdl:input>
- <wsdl:output>
- <mime:content type="text/xml" part="TestPart"/>
- </wsdl:output>
- </wsdl:operation>
- </wsdl:binding>
<!-- ###################################### -->
<!-- POST tests-->
<!-- ###################################### -->
@@ -235,21 +220,6 @@
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:binding name="DummyServiceHttpBinding_post+whatever-content-type" type="ns1:DummyServicePortType">
- <wsdl:documentation>
- shouldFail # Only application/x-www-form-urlencoded and text/xml should be supported
- </wsdl:documentation>
- <http:binding verb="POST"/>
- <wsdl:operation name="hello">
- <http:operation location="DummyService/hello"/>
- <wsdl:input>
- <mime:content type="whatever-content-type" part="TestPart"/>
- </wsdl:input>
- <wsdl:output>
- <mime:content type="text/xml" part="TestPart"/>
- </wsdl:output>
- </wsdl:operation>
- </wsdl:binding>
<!-- ###################################### -->
<!-- GET tests-->
<!-- ###################################### -->
@@ -396,5 +366,71 @@
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
+
+ <!-- ###################################### -->
+ <!-- Content-Type tests-->
+ <!-- ###################################### -->
+ <wsdl:binding name="DummyServiceHttpBinding_put+whatever-content-type" type="ns1:DummyServicePortType">
+ <wsdl:documentation>
+ shouldFail # Only application/x-www-form-urlencoded and text/xml should be supported
+ </wsdl:documentation>
+ <http:binding verb="PUT"/>
+ <wsdl:operation name="hello">
+ <http:operation location="DummyService/hello"/>
+ <wsdl:input>
+ <mime:content type="whatever-content-type" part="TestPart"/>
+ </wsdl:input>
+ <wsdl:output>
+ <mime:content type="text/xml" part="TestPart"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:binding name="DummyServiceHttpBinding_post+whatever-content-type" type="ns1:DummyServicePortType">
+ <wsdl:documentation>
+ shouldFail # Only application/x-www-form-urlencoded and text/xml should be supported
+ </wsdl:documentation>
+ <http:binding verb="POST"/>
+ <wsdl:operation name="hello">
+ <http:operation location="DummyService/hello"/>
+ <wsdl:input>
+ <mime:content type="whatever-content-type" part="TestPart"/>
+ </wsdl:input>
+ <wsdl:output>
+ <mime:content type="text/xml" part="TestPart"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:binding name="DummyServiceHttpBinding_missing-content-type" type="ns1:DummyServicePortType">
+ <wsdl:documentation>
+ shouldFail # mime:content, type attribute is mandatory
+ </wsdl:documentation>
+ <http:binding verb="POST"/>
+ <wsdl:operation name="hello">
+ <http:operation location="DummyService/hello"/>
+ <wsdl:input>
+ <mime:content part="TestPart"/>
+ </wsdl:input>
+ <wsdl:output>
+ <mime:content part="TestPart"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:binding name="DummyServiceHttpBinding_empty-content-type" type="ns1:DummyServicePortType">
+ <wsdl:documentation>
+ shouldFail # mime:content, type attribute cannot be empty
+ </wsdl:documentation>
+ <http:binding verb="POST"/>
+ <wsdl:operation name="hello">
+ <http:operation location="DummyService/hello"/>
+ <wsdl:input>
+ <mime:content part="TestPart" type=""/>
+ </wsdl:input>
+ <wsdl:output>
+ <mime:content part="TestPart" type=""/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+
<!-- no <service> tags needed -->
</wsdl:definitions>