SWS-351 - Arbitrary parameter injection for @Endpoints
This commit is contained in:
@@ -19,14 +19,17 @@ package org.springframework.ws.server.endpoint.adapter.method;
|
||||
import javax.xml.transform.Source;
|
||||
import javax.xml.transform.dom.DOMSource;
|
||||
import javax.xml.transform.sax.SAXSource;
|
||||
import javax.xml.transform.stax.StAXSource;
|
||||
import javax.xml.transform.stream.StreamSource;
|
||||
|
||||
import org.springframework.core.MethodParameter;
|
||||
import org.springframework.ws.server.endpoint.annotation.RequestPayload;
|
||||
import org.springframework.ws.server.endpoint.annotation.ResponsePayload;
|
||||
import org.springframework.xml.transform.StaxSource;
|
||||
import org.springframework.xml.transform.StringSource;
|
||||
|
||||
/** @author Arjen Poutsma */
|
||||
@SuppressWarnings("Since15")
|
||||
public class SourcePayloadMethodProcessorTest extends AbstractPayloadMethodProcessorTestCase {
|
||||
|
||||
@Override
|
||||
@@ -36,20 +39,22 @@ public class SourcePayloadMethodProcessorTest extends AbstractPayloadMethodProce
|
||||
|
||||
@Override
|
||||
protected MethodParameter[] createSupportedParameters() throws NoSuchMethodException {
|
||||
return new MethodParameter[] {
|
||||
new MethodParameter(getClass().getMethod("source", Source.class), 0),
|
||||
new MethodParameter(getClass().getMethod("dom", DOMSource.class), 0),
|
||||
new MethodParameter(getClass().getMethod("sax", SAXSource.class), 0),
|
||||
new MethodParameter(getClass().getMethod("stream", StreamSource.class), 0)};
|
||||
return new MethodParameter[]{new MethodParameter(getClass().getMethod("source", Source.class), 0),
|
||||
new MethodParameter(getClass().getMethod("dom", DOMSource.class), 0),
|
||||
new MethodParameter(getClass().getMethod("stax1", StaxSource.class), 0),
|
||||
new MethodParameter(getClass().getMethod("sax", SAXSource.class), 0),
|
||||
new MethodParameter(getClass().getMethod("stream", StreamSource.class), 0),
|
||||
new MethodParameter(getClass().getMethod("stax2", StAXSource.class), 0)};
|
||||
}
|
||||
|
||||
@Override
|
||||
protected MethodParameter[] createSupportedReturnTypes() throws NoSuchMethodException {
|
||||
return new MethodParameter[] {
|
||||
new MethodParameter(getClass().getMethod("source", Source.class), -1),
|
||||
new MethodParameter(getClass().getMethod("dom", DOMSource.class), -1),
|
||||
new MethodParameter(getClass().getMethod("sax", SAXSource.class), -1),
|
||||
new MethodParameter(getClass().getMethod("stream", StreamSource.class), -1)};
|
||||
return new MethodParameter[]{new MethodParameter(getClass().getMethod("source", Source.class), -1),
|
||||
new MethodParameter(getClass().getMethod("dom", DOMSource.class), -1),
|
||||
new MethodParameter(getClass().getMethod("stax1", StaxSource.class), -1),
|
||||
new MethodParameter(getClass().getMethod("sax", SAXSource.class), -1),
|
||||
new MethodParameter(getClass().getMethod("stream", StreamSource.class), -1),
|
||||
new MethodParameter(getClass().getMethod("stax2", StAXSource.class), -1)};
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -67,6 +72,11 @@ public class SourcePayloadMethodProcessorTest extends AbstractPayloadMethodProce
|
||||
return source;
|
||||
}
|
||||
|
||||
@ResponsePayload
|
||||
public StaxSource stax1(@RequestPayload StaxSource source) {
|
||||
return source;
|
||||
}
|
||||
|
||||
@ResponsePayload
|
||||
public SAXSource sax(@RequestPayload SAXSource source) {
|
||||
return source;
|
||||
@@ -76,4 +86,9 @@ public class SourcePayloadMethodProcessorTest extends AbstractPayloadMethodProce
|
||||
public StreamSource stream(@RequestPayload StreamSource source) {
|
||||
return source;
|
||||
}
|
||||
|
||||
@ResponsePayload
|
||||
public StAXSource stax2(@RequestPayload StAXSource source) {
|
||||
return source;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user