Skip to content

Commit a36d4ee

Browse files
committed
Polishing.
Consider configured PolymorphicTypeValidator. See #2211
1 parent b1299c6 commit a36d4ee

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/main/java/org/springframework/data/redis/serializer/GenericJackson2JsonRedisSerializer.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2015-2021 the original author or authors.
2+
* Copyright 2015-2022 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -29,7 +29,7 @@
2929
import com.fasterxml.jackson.databind.ObjectMapper;
3030
import com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping;
3131
import com.fasterxml.jackson.databind.SerializerProvider;
32-
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
32+
import com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator;
3333
import com.fasterxml.jackson.databind.module.SimpleModule;
3434
import com.fasterxml.jackson.databind.ser.SerializerFactory;
3535
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
@@ -59,6 +59,8 @@ public GenericJackson2JsonRedisSerializer() {
5959
* {@link JsonTypeInfo.Id#CLASS} will be used.
6060
*
6161
* @param classPropertyTypeName Name of the JSON property holding type information. Can be {@literal null}.
62+
* @see ObjectMapper#activateDefaultTypingAsProperty(PolymorphicTypeValidator, DefaultTyping, String)
63+
* @see ObjectMapper#activateDefaultTyping(PolymorphicTypeValidator, DefaultTyping, As)
6264
*/
6365
public GenericJackson2JsonRedisSerializer(@Nullable String classPropertyTypeName) {
6466

@@ -69,9 +71,10 @@ public GenericJackson2JsonRedisSerializer(@Nullable String classPropertyTypeName
6971
registerNullValueSerializer(mapper, classPropertyTypeName);
7072

7173
if (StringUtils.hasText(classPropertyTypeName)) {
72-
mapper.activateDefaultTypingAsProperty(LaissezFaireSubTypeValidator.instance, DefaultTyping.NON_FINAL, classPropertyTypeName);
74+
mapper.activateDefaultTypingAsProperty(mapper.getPolymorphicTypeValidator(), DefaultTyping.NON_FINAL,
75+
classPropertyTypeName);
7376
} else {
74-
mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, DefaultTyping.NON_FINAL, As.PROPERTY);
77+
mapper.activateDefaultTyping(mapper.getPolymorphicTypeValidator(), DefaultTyping.NON_FINAL, As.PROPERTY);
7578
}
7679
}
7780

0 commit comments

Comments
 (0)