From 2e1fcef156994888994a070918ac81027fcb8230 Mon Sep 17 00:00:00 2001 From: Albumen Kevin Date: Wed, 17 May 2023 10:46:08 +0800 Subject: [PATCH] Support set default serialize check status (#12333) --- .../common/utils/SerializeSecurityManager.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/SerializeSecurityManager.java b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/SerializeSecurityManager.java index 13f5769df2..66158ca0c2 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/SerializeSecurityManager.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/SerializeSecurityManager.java @@ -16,13 +16,13 @@ */ package org.apache.dubbo.common.utils; +import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; +import org.apache.dubbo.common.logger.LoggerFactory; + import java.util.Locale; import java.util.Objects; import java.util.Set; -import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; -import org.apache.dubbo.common.logger.LoggerFactory; - public class SerializeSecurityManager { private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(SerializeSecurityManager.class); @@ -38,6 +38,8 @@ public class SerializeSecurityManager { private volatile SerializeCheckStatus checkStatus = null; + private volatile SerializeCheckStatus defaultCheckStatus = AllowClassNotifyListener.DEFAULT_STATUS; + private volatile Boolean checkSerializable = null; public void addToAlwaysAllowed(String className) { @@ -92,6 +94,12 @@ public class SerializeSecurityManager { notifyCheckStatus(); } + public void setDefaultCheckStatus(SerializeCheckStatus checkStatus) { + this.defaultCheckStatus = checkStatus; + logger.info("Serialize check default level: " + checkStatus.name()); + notifyCheckStatus(); + } + public void setCheckSerializable(boolean checkSerializable) { if (this.checkSerializable == null || (Boolean.TRUE.equals(this.checkSerializable) && !checkSerializable)) { this.checkSerializable = checkSerializable; @@ -126,7 +134,7 @@ public class SerializeSecurityManager { } protected SerializeCheckStatus getCheckStatus() { - return checkStatus == null ? AllowClassNotifyListener.DEFAULT_STATUS : checkStatus; + return checkStatus == null ? defaultCheckStatus : checkStatus; } protected Set getAllowedPrefix() {