public class Jackson2ExecutionContextStringSerializer extends java.lang.Object implements ExecutionContextSerializer
construction time or provide
an explicit mapping using Jackson annotations, as shown in the following example:
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
public class MyTrustedType implements Serializable {
}
It is also possible to provide a custom ObjectMapper with a mixin for
the trusted type:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.addMixIn(MyTrustedType.class, Object.class);
Jackson2ExecutionContextStringSerializer serializer = new Jackson2ExecutionContextStringSerializer();
serializer.setObjectMapper(objectMapper);
// register serializer in JobRepositoryFactoryBean
If the (de)serialization is only done by a trusted source, you can also enable
default typing:
PolymorphicTypeValidator polymorphicTypeValidator = .. // configure your trusted PolymorphicTypeValidator
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.activateDefaultTyping(polymorphicTypeValidator);
Jackson2ExecutionContextStringSerializer serializer = new Jackson2ExecutionContextStringSerializer();
serializer.setObjectMapper(objectMapper);
// register serializer in JobRepositoryFactoryBean
ExecutionContextSerializer| Constructor and Description |
|---|
Jackson2ExecutionContextStringSerializer(java.lang.String... trustedClassNames)
Create a new
Jackson2ExecutionContextStringSerializer. |
| Modifier and Type | Method and Description |
|---|---|
java.util.Map<java.lang.String,java.lang.Object> |
deserialize(java.io.InputStream in) |
void |
serialize(java.util.Map<java.lang.String,java.lang.Object> context,
java.io.OutputStream out) |
void |
setObjectMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitpublic Jackson2ExecutionContextStringSerializer(java.lang.String... trustedClassNames)
Jackson2ExecutionContextStringSerializer.trustedClassNames - fully qualified names of classes that are safe
to deserialize from the execution context and which should be added to the
default set of trusted classes.public void setObjectMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
public java.util.Map<java.lang.String,java.lang.Object> deserialize(java.io.InputStream in)
throws java.io.IOException
deserialize in interface org.springframework.core.serializer.Deserializer<java.util.Map<java.lang.String,java.lang.Object>>java.io.IOExceptionpublic void serialize(java.util.Map<java.lang.String,java.lang.Object> context,
java.io.OutputStream out)
throws java.io.IOException
serialize in interface org.springframework.core.serializer.Serializer<java.util.Map<java.lang.String,java.lang.Object>>java.io.IOException