From d0d780c577ea35e129364ff7bc2ed1ebf982bcca Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Tue, 27 Jul 2010 03:02:38 +0000 Subject: [PATCH] INT-1245, INT-1256 SerializingHttpMessageConverter is restricted to only the application/x-java-serialized-object media type --- .../http/SerializingHttpMessageConverter.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/spring-integration-http/src/main/java/org/springframework/integration/http/SerializingHttpMessageConverter.java b/spring-integration-http/src/main/java/org/springframework/integration/http/SerializingHttpMessageConverter.java index dafff9d283..78130d59d5 100644 --- a/spring-integration-http/src/main/java/org/springframework/integration/http/SerializingHttpMessageConverter.java +++ b/spring-integration-http/src/main/java/org/springframework/integration/http/SerializingHttpMessageConverter.java @@ -37,16 +37,28 @@ import org.springframework.util.FileCopyUtils; */ public class SerializingHttpMessageConverter extends AbstractHttpMessageConverter { + private static final MediaType APPLICATION_JAVA_SERIALIZED_OBJECT = new MediaType("application", "x-java-serialized-object"); + + /** Creates a new instance of the {@code SerializingHttpMessageConverter}. */ public SerializingHttpMessageConverter() { - super(new MediaType("application", "x-java-serialized-object")); + super(APPLICATION_JAVA_SERIALIZED_OBJECT); } @Override public boolean supports(Class clazz) { - return !(byte[].class.equals(clazz)) && !(String.class.equals(clazz)) - && (clazz != null && Serializable.class.isAssignableFrom(clazz)); + return Serializable.class.isAssignableFrom(clazz); + } + + @Override + public boolean canRead(Class clazz, MediaType mediaType) { + return (Serializable.class.isAssignableFrom(clazz) && APPLICATION_JAVA_SERIALIZED_OBJECT.includes(mediaType)); + } + + @Override + public boolean canWrite(Class clazz, MediaType mediaType) { + return (Serializable.class.isAssignableFrom(clazz) && APPLICATION_JAVA_SERIALIZED_OBJECT.includes(mediaType)); } @Override