Skip to content

Commit

Permalink
[Java] Skip toString in annotation invocation handler readObject (#…
Browse files Browse the repository at this point in the history
…922)

* Use fury serialization to avoid AnnotationInvocationHandler#readObject

* Use fury serialization to avoid AnnotationInvocationHandler#readObject
  • Loading branch information
chaokunyang committed Sep 27, 2023
1 parent ed78c77 commit b9e66b2
Showing 1 changed file with 7 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -541,6 +541,13 @@ public static boolean requireJavaSerialization(Class<?> clz) {
if (Externalizable.class.isAssignableFrom(clz)) {
return false;
} else {
// `AnnotationInvocationHandler#readObject` may invoke `toString` of object, which may be
// risky.
// For example, JsonObject#toString may invoke `getter`.
// Use fury serialization to avoid this.
if ("sun.reflect.annotation.AnnotationInvocationHandler".equals(clz.getName())) {
return false;
}
return JavaSerializer.getReadObjectMethod(clz) != null
|| JavaSerializer.getWriteObjectMethod(clz) != null;
}
Expand Down

0 comments on commit b9e66b2

Please sign in to comment.