This is an automated email from the ASF dual-hosted git repository.

youling1128 pushed a commit to branch 2.8.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/2.8.x by this push:
     new 38e95a433 [#5090] SSLOption/KeyPairUtils change using Environment get 
configs (#5091)
38e95a433 is described below

commit 38e95a433b4f813220aa4b1873cfbdecdb76a89e
Author: Alex <[email protected]>
AuthorDate: Tue Mar 10 11:35:03 2026 +0800

    [#5090] SSLOption/KeyPairUtils change using Environment get configs (#5091)
---
 .../center/client/ServiceCenterDiscovery.java      |  4 +
 .../core/ConfigurationSpringInitializer.java       |  2 +
 .../foundation/common/LegacyPropertyFactory.java   | 40 ++++++++++
 .../foundation/common/utils/KeyPairUtils.java      | 15 ++--
 .../foundation/common/utils/TestRSAUtil.java       | 15 ++++
 foundations/foundation-ssl/pom.xml                 |  4 +
 .../servicecomb/foundation/ssl/SSLOption.java      | 71 ++++++-----------
 .../foundation/ssl/SSLOptionFactory.java           |  6 +-
 .../servicecomb/foundation/ssl/SSLOptionTest.java  | 88 +++++++++++-----------
 .../foundation/ssl/TestSSLOptionFactory.java       | 15 ++--
 .../foundation/vertx/VertxTLSBuilder.java          |  9 ++-
 .../foundation/vertx/server/TcpServer.java         |  5 +-
 .../foundation/vertx/TestVertxTLSBuilder.java      | 36 +++++----
 .../authentication/TestAuthHandlerBoot.java        | 11 +++
 .../authentication/TestAuthenticationToken.java    | 16 +++-
 .../provider/TestProviderTokenManager.java         | 10 +++
 .../transport/highway/HighwayClient.java           |  5 +-
 .../transport/highway/TestHighwayClient.java       |  4 +
 .../transport/highway/TestHighwayTransport.java    |  4 +
 .../transport/rest/vertx/RestServerVerticle.java   |  5 +-
 .../rest/vertx/TestRestServerVerticle.java         |  4 +
 21 files changed, 229 insertions(+), 140 deletions(-)

diff --git 
a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java
 
b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java
index 6a58d1203..2598b52c2 100644
--- 
a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java
+++ 
b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java
@@ -138,6 +138,10 @@ public class ServiceCenterDiscovery extends AbstractTask {
       synchronized (lock) {
         if (this.instancesCache.get(subscriptionKey) == null) {
           SubscriptionValue value = new SubscriptionValue();
+          if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("find {}#{} microservice instances from 
service-center.", subscriptionKey.appId,
+                subscriptionKey.serviceName);
+          }
           pullInstance(subscriptionKey, value, false);
           this.instancesCache.put(subscriptionKey, value);
         }
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java
 
b/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java
index 791c441f7..0e4563857 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java
@@ -36,6 +36,7 @@ import 
org.apache.servicecomb.config.event.DynamicConfigurationChangedEvent;
 import org.apache.servicecomb.config.event.RefreshGovernanceConfigurationEvent;
 import org.apache.servicecomb.config.spi.ConfigCenterConfigurationSource;
 import org.apache.servicecomb.foundation.bootstrap.BootStrapService;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.common.event.EventManager;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
 import org.slf4j.Logger;
@@ -110,6 +111,7 @@ public class ConfigurationSpringInitializer extends 
PropertySourcesPlaceholderCo
   @Override
   public void setEnvironment(Environment environment) {
     super.setEnvironment(environment);
+    LegacyPropertyFactory.setEnvironment(environment);
     if (isExternalInit()) {
       return;
     }
diff --git 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/LegacyPropertyFactory.java
 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/LegacyPropertyFactory.java
new file mode 100644
index 000000000..5abbe6f0a
--- /dev/null
+++ 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/LegacyPropertyFactory.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.servicecomb.foundation.common;
+
+import org.springframework.core.env.Environment;
+
+public class LegacyPropertyFactory {
+  private static Environment environment;
+
+  public static void setEnvironment(Environment environment) {
+    LegacyPropertyFactory.environment = environment;
+  }
+
+  public static Environment getEnvironment() {
+    return environment;
+  }
+
+  public static String getStringProperty(String key, String defaultValue) {
+    return environment.getProperty(key, defaultValue);
+  }
+
+  public static int getIntProperty(String key, int defaultValue) {
+    return environment.getProperty(key, int.class, defaultValue);
+  }
+}
diff --git 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/KeyPairUtils.java
 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/KeyPairUtils.java
index 70b070067..d9aef85b4 100644
--- 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/KeyPairUtils.java
+++ 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/KeyPairUtils.java
@@ -31,23 +31,22 @@ import java.security.spec.InvalidKeySpecException;
 import java.security.spec.X509EncodedKeySpec;
 import java.util.Base64;
 
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.netflix.config.DynamicPropertyFactory;
-
 public class KeyPairUtils {
 
   private static final Logger LOGGER = 
LoggerFactory.getLogger(KeyPairUtils.class);
 
-  private static final String KEY_GENERATOR_ALGORITHM = 
DynamicPropertyFactory.getInstance()
-      
.getStringProperty("servicecomb.publicKey.accessControl.keyGeneratorAlgorithm", 
"RSA").get();;
+  private static final String KEY_GENERATOR_ALGORITHM = LegacyPropertyFactory
+      
.getStringProperty("servicecomb.publicKey.accessControl.keyGeneratorAlgorithm", 
"RSA");;
 
-  private static final String SIGN_ALG = DynamicPropertyFactory.getInstance()
-      .getStringProperty("servicecomb.publicKey.accessControl.signAlgorithm", 
"SHA256withRSA").get();
+  private static final String SIGN_ALG = LegacyPropertyFactory
+      .getStringProperty("servicecomb.publicKey.accessControl.signAlgorithm", 
"SHA256withRSA");
 
-  private static final int KEY_SIZE = DynamicPropertyFactory.getInstance()
-      .getIntProperty("servicecomb.publicKey.accessControl.keySize", 
2048).get();
+  private static final int KEY_SIZE = LegacyPropertyFactory
+      .getIntProperty("servicecomb.publicKey.accessControl.keySize", 2048);
 
   private static final Base64.Encoder encoder = Base64.getEncoder();
 
diff --git 
a/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/utils/TestRSAUtil.java
 
b/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/utils/TestRSAUtil.java
index ab6458cff..057dbcf66 100644
--- 
a/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/utils/TestRSAUtil.java
+++ 
b/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/utils/TestRSAUtil.java
@@ -16,8 +16,12 @@
  */
 package org.apache.servicecomb.foundation.common.utils;
 
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
@@ -25,6 +29,17 @@ import java.security.SignatureException;
 import java.security.spec.InvalidKeySpecException;
 
 public class TestRSAUtil {
+  @BeforeAll
+  public static void setUpClass() {
+    Environment environment = Mockito.mock(Environment.class);
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.publicKey.accessControl.keyGeneratorAlgorithm",
 "RSA"))
+        .thenReturn("RSA");
+    
Mockito.when(environment.getProperty("servicecomb.publicKey.accessControl.signAlgorithm",
 "SHA256withRSA"))
+        .thenReturn("SHA256withRSA");
+    
Mockito.when(environment.getProperty("servicecomb.publicKey.accessControl.keySize",
 int.class, 2048))
+        .thenReturn(2048);
+  }
 
   @Test
   public void testSignVerify()
diff --git a/foundations/foundation-ssl/pom.xml 
b/foundations/foundation-ssl/pom.xml
index b5802336d..334e47629 100644
--- a/foundations/foundation-ssl/pom.xml
+++ b/foundations/foundation-ssl/pom.xml
@@ -27,6 +27,10 @@
   <name>Java Chassis::Foundations::SSL</name>
 
   <dependencies>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-context</artifactId>
+    </dependency>
     <dependency>
       <groupId>com.netflix.archaius</groupId>
       <artifactId>archaius-core</artifactId>
diff --git 
a/foundations/foundation-ssl/src/main/java/org/apache/servicecomb/foundation/ssl/SSLOption.java
 
b/foundations/foundation-ssl/src/main/java/org/apache/servicecomb/foundation/ssl/SSLOption.java
index bbc7e0d9d..86ddc026e 100644
--- 
a/foundations/foundation-ssl/src/main/java/org/apache/servicecomb/foundation/ssl/SSLOption.java
+++ 
b/foundations/foundation-ssl/src/main/java/org/apache/servicecomb/foundation/ssl/SSLOption.java
@@ -25,11 +25,9 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
 import java.nio.charset.StandardCharsets;
-import java.util.List;
 import java.util.Properties;
 
-import com.netflix.config.ConcurrentCompositeConfiguration;
-import com.netflix.config.DynamicPropertyFactory;
+import org.springframework.core.env.Environment;
 
 /**
  * SSL配置选项。
@@ -263,20 +261,10 @@ public final class SSLOption {
     return sb.toString();
   }
 
-  public static String getStringProperty(ConcurrentCompositeConfiguration 
configSource, String defaultValue,
-      String... keys) {
+  public static String getStringProperty(Environment environment, String 
defaultValue, String... keys) {
     String property = null;
     for (String key : keys) {
-      if (configSource != null) {
-        Object v = configSource.getProperty(key);
-        if (v instanceof List) {
-          property = listToString(((List<?>) v).toArray());
-        } else {
-          property = (String) configSource.getProperty(key);
-        }
-      } else {
-        property = DynamicPropertyFactory.getInstance().getStringProperty(key, 
null).get();
-      }
+      property = environment.getProperty(key);
       if (property != null) {
         break;
       }
@@ -289,17 +277,10 @@ public final class SSLOption {
     }
   }
 
-  private static boolean getBooleanProperty(ConcurrentCompositeConfiguration 
configSource, boolean defaultValue,
-      String... keys) {
+  private static boolean getBooleanProperty(Environment environment, boolean 
defaultValue, String... keys) {
     String property = null;
     for (String key : keys) {
-      if (configSource != null) {
-        if (configSource.getProperty(key) != null) {
-          return configSource.getBoolean(key);
-        }
-      } else {
-        property = DynamicPropertyFactory.getInstance().getStringProperty(key, 
null).get();
-      }
+      property = environment.getProperty(key);
       if (property != null) {
         break;
       }
@@ -312,83 +293,79 @@ public final class SSLOption {
     }
   }
 
-  public static SSLOption buildFromYaml(String tag, 
ConcurrentCompositeConfiguration configSource) {
+  public static SSLOption buildFromYaml(String tag, Environment environment) {
     SSLOption option = new SSLOption();
-    option.engine = getStringProperty(configSource,
+    option.engine = getStringProperty(environment,
         DEFAULT_OPTION.getEngine(),
         "ssl." + tag + ".engine",
         "ssl.engine");
     option.protocols =
-        getStringProperty(configSource,
+        getStringProperty(environment,
             DEFAULT_OPTION.getProtocols(),
             "ssl." + tag + ".protocols",
             "ssl.protocols");
     option.ciphers =
-        getStringProperty(configSource, DEFAULT_OPTION.getCiphers(), "ssl." + 
tag + ".ciphers", "ssl.ciphers");
+        getStringProperty(environment, DEFAULT_OPTION.getCiphers(), "ssl." + 
tag + ".ciphers", "ssl.ciphers");
     option.authPeer =
-        getBooleanProperty(configSource, DEFAULT_OPTION.isAuthPeer(), "ssl." + 
tag + ".authPeer", "ssl.authPeer");
+        getBooleanProperty(environment, DEFAULT_OPTION.isAuthPeer(), "ssl." + 
tag + ".authPeer", "ssl.authPeer");
     option.checkCNHost =
-        getBooleanProperty(configSource,
+        getBooleanProperty(environment,
             DEFAULT_OPTION.isCheckCNHost(),
             "ssl." + tag + ".checkCN.host",
             "ssl.checkCN.host");
     option.checkCNWhite =
-        getBooleanProperty(configSource,
+        getBooleanProperty(environment,
             DEFAULT_OPTION.isCheckCNWhite(),
             "ssl." + tag + ".checkCN.white",
             "ssl.checkCN.white");
-    option.checkCNWhiteFile = getStringProperty(configSource,
+    option.checkCNWhiteFile = getStringProperty(environment,
         DEFAULT_OPTION.getCiphers(),
         "ssl." + tag + ".checkCN.white.file",
         "ssl.checkCN.white.file");
-    option.allowRenegociate = getBooleanProperty(configSource,
+    option.allowRenegociate = getBooleanProperty(environment,
         DEFAULT_OPTION.isAllowRenegociate(),
         "ssl." + tag + ".allowRenegociate",
         "ssl.allowRenegociate");
     option.storePath =
-        getStringProperty(configSource,
+        getStringProperty(environment,
             DEFAULT_OPTION.getStorePath(),
             "ssl." + tag + ".storePath",
             "ssl.storePath");
     option.clientAuth =
-        getStringProperty(configSource,
+        getStringProperty(environment,
             DEFAULT_OPTION.getClientAuth(),
             "ssl." + tag + ".storePath",
             "ssl.clientAuth");
     option.trustStore =
-        getStringProperty(configSource,
+        getStringProperty(environment,
             DEFAULT_OPTION.getTrustStore(),
             "ssl." + tag + ".trustStore",
             "ssl.trustStore");
-    option.trustStoreType = getStringProperty(configSource,
+    option.trustStoreType = getStringProperty(environment,
         DEFAULT_OPTION.getTrustStoreType(),
         "ssl." + tag + ".trustStoreType",
         "ssl.trustStoreType");
-    option.trustStoreValue = getStringProperty(configSource,
+    option.trustStoreValue = getStringProperty(environment,
         DEFAULT_OPTION.getTrustStoreValue(),
         "ssl." + tag + ".trustStoreValue",
         "ssl.trustStoreValue");
     option.keyStore =
-        getStringProperty(configSource, DEFAULT_OPTION.getKeyStore(), "ssl." + 
tag + ".keyStore", "ssl.keyStore");
+        getStringProperty(environment, DEFAULT_OPTION.getKeyStore(), "ssl." + 
tag + ".keyStore", "ssl.keyStore");
     option.keyStoreType =
-        getStringProperty(configSource,
+        getStringProperty(environment,
             DEFAULT_OPTION.getKeyStoreType(),
             "ssl." + tag + ".keyStoreType",
             "ssl.keyStoreType");
-    option.keyStoreValue = getStringProperty(configSource,
+    option.keyStoreValue = getStringProperty(environment,
         DEFAULT_OPTION.getKeyStoreValue(),
         "ssl." + tag + ".keyStoreValue",
         "ssl.keyStoreValue");
-    option.crl = getStringProperty(configSource, DEFAULT_OPTION.getCrl(), 
"ssl." + tag + ".crl", "ssl.crl");
+    option.crl = getStringProperty(environment, DEFAULT_OPTION.getCrl(), 
"ssl." + tag + ".crl", "ssl.crl");
     option.sslCustomClass =
-        getStringProperty(configSource, null, "ssl." + tag + 
".sslCustomClass", "ssl.sslCustomClass");
+        getStringProperty(environment, null, "ssl." + tag + ".sslCustomClass", 
"ssl.sslCustomClass");
     return option;
   }
 
-  public static SSLOption buildFromYaml(String tag) {
-    return buildFromYaml(tag, null);
-  }
-
   private void fromProperty(Properties props) {
     this.protocols = propString(props, "ssl.protocols");
     this.ciphers = propString(props, "ssl.ciphers");
diff --git 
a/foundations/foundation-ssl/src/main/java/org/apache/servicecomb/foundation/ssl/SSLOptionFactory.java
 
b/foundations/foundation-ssl/src/main/java/org/apache/servicecomb/foundation/ssl/SSLOptionFactory.java
index 4abe85ca6..49cdb3ab1 100644
--- 
a/foundations/foundation-ssl/src/main/java/org/apache/servicecomb/foundation/ssl/SSLOptionFactory.java
+++ 
b/foundations/foundation-ssl/src/main/java/org/apache/servicecomb/foundation/ssl/SSLOptionFactory.java
@@ -17,11 +17,11 @@
 
 package org.apache.servicecomb.foundation.ssl;
 
-import com.netflix.config.ConcurrentCompositeConfiguration;
+import org.springframework.core.env.Environment;
 
 public interface SSLOptionFactory {
-  static SSLOptionFactory createSSLOptionFactory(String tag, 
ConcurrentCompositeConfiguration configSource) {
-    String name = SSLOption.getStringProperty(configSource,
+  static SSLOptionFactory createSSLOptionFactory(String tag, Environment 
environment) {
+    String name = SSLOption.getStringProperty(environment,
         null,
         "ssl." + tag + ".sslOptionFactory",
         "ssl.sslOptionFactory");
diff --git 
a/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/SSLOptionTest.java
 
b/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/SSLOptionTest.java
index 67ae38284..912746e71 100644
--- 
a/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/SSLOptionTest.java
+++ 
b/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/SSLOptionTest.java
@@ -24,32 +24,38 @@ import java.io.Reader;
 import java.net.URL;
 import java.util.Properties;
 
-import org.apache.commons.configuration.SystemConfiguration;
-import org.apache.servicecomb.config.ConfigUtil;
-import org.apache.servicecomb.config.archaius.sources.ConfigSourceMaker;
-import org.junit.AfterClass;
+import org.junit.Before;
 import org.junit.Test;
 
-import com.netflix.config.ConcurrentCompositeConfiguration;
-import com.netflix.config.ConcurrentMapConfiguration;
-import com.netflix.config.ConfigurationManager;
-import com.netflix.config.DynamicConfiguration;
-import com.netflix.config.DynamicPropertyFactory;
-import com.netflix.config.FixedDelayPollingScheduler;
-
-import mockit.Deencapsulation;
 import mockit.Mock;
 import mockit.MockUp;
 import org.junit.jupiter.api.Assertions;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 public class SSLOptionTest {
   private static final String DIR = 
Thread.currentThread().getContextClassLoader().getResource("").getPath();
 
-  @AfterClass
-  public static void tearDown() throws Exception {
-    Deencapsulation.setField(ConfigurationManager.class, "instance", null);
-    Deencapsulation.setField(ConfigurationManager.class, 
"customConfigurationInstalled", false);
-    Deencapsulation.setField(DynamicPropertyFactory.class, "config", null);
+  Environment environment = Mockito.mock(Environment.class);
+
+  @Before
+  public void setUp() throws Exception {
+    
Mockito.when(environment.getProperty("ssl.protocols")).thenReturn("TLSv1.2,TLSv1.1,TLSv1,SSLv2Hello");
+    Mockito.when(environment.getProperty("ssl.ciphers")).thenReturn(
+        
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256");
+    Mockito.when(environment.getProperty("ssl.authPeer")).thenReturn("true");
+    
Mockito.when(environment.getProperty("ssl.checkCN.host")).thenReturn("true");
+    
Mockito.when(environment.getProperty("ssl.checkCN.white")).thenReturn("true");
+    
Mockito.when(environment.getProperty("ssl.checkCN.white.file")).thenReturn("white.list");
+    
Mockito.when(environment.getProperty("ssl.allowRenegotiate")).thenReturn("false");
+    
Mockito.when(environment.getProperty("ssl.storePath")).thenReturn("internal");
+    
Mockito.when(environment.getProperty("ssl.trustStore")).thenReturn("trust.jks");
+    
Mockito.when(environment.getProperty("ssl.trustStoreType")).thenReturn("JKS");
+    
Mockito.when(environment.getProperty("ssl.trustStoreValue")).thenReturn("Changeme_123");
+    
Mockito.when(environment.getProperty("ssl.keyStore")).thenReturn("server.p12");
+    
Mockito.when(environment.getProperty("ssl.keyStoreType")).thenReturn("PKCS12");
+    
Mockito.when(environment.getProperty("ssl.keyStoreValue")).thenReturn("Changeme_123");
+    Mockito.when(environment.getProperty("ssl.crl")).thenReturn("revoke.crl");
   }
 
   @Test
@@ -124,21 +130,13 @@ public class SSLOptionTest {
 
   @Test
   public void testSSLOptionYaml() {
-    // configuration from yaml files: default microservice.yaml
-    DynamicConfiguration configFromYamlFile =
-        new DynamicConfiguration(ConfigSourceMaker.yamlConfigSource(), new 
FixedDelayPollingScheduler());
-    // configuration from system properties
-    ConcurrentMapConfiguration configFromSystemProperties =
-        new ConcurrentMapConfiguration(new SystemConfiguration());
-
-    // create a hierarchy of configuration that makes
-    // 1) dynamic configuration source override system properties
-    ConcurrentCompositeConfiguration finalConfig = new 
ConcurrentCompositeConfiguration();
-    finalConfig.addConfiguration(configFromSystemProperties, 
"systemEnvConfig");
-    finalConfig.addConfiguration(configFromYamlFile, "configFromYamlFile");
-    ConfigurationManager.install(finalConfig);
-
-    SSLOption option = SSLOption.buildFromYaml("server");
+    
Mockito.when(environment.getProperty("ssl.server.sslCustomClass")).thenReturn("wwrong");
+    Mockito.when(environment.getProperty("ssl.ciphers"))
+        
.thenReturn("TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,"
+            + 
"TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,"
+            + "TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA");
+
+    SSLOption option = SSLOption.buildFromYaml("server", environment);
 
     String protocols = option.getProtocols();
     option.setProtocols(protocols);
@@ -170,7 +168,7 @@ public class SSLOptionTest {
 
     boolean allowRenegociate = option.isAllowRenegociate();
     option.setAllowRenegociate(allowRenegociate);
-    Assertions.assertFalse(allowRenegociate);
+    Assertions.assertTrue(allowRenegociate);
 
     String storePath = option.getStorePath();
     option.setStorePath(storePath);
@@ -212,10 +210,9 @@ public class SSLOptionTest {
 
   @Test
   public void testSSLOptionYamlOption2() throws Exception {
-    System.setProperty("ssl.protocols", "TLSv1.2");
-    ConcurrentCompositeConfiguration finalConfig = 
ConfigUtil.createLocalConfig();
+    
Mockito.when(environment.getProperty("ssl.protocols")).thenReturn("TLSv1.2");
 
-    SSLOption option = SSLOption.buildFromYaml("server", finalConfig);
+    SSLOption option = SSLOption.buildFromYaml("server", environment);
 
     String protocols = option.getProtocols();
     option.setProtocols(protocols);
@@ -225,10 +222,9 @@ public class SSLOptionTest {
 
   @Test
   public void testSSLOptionYamlOptionWithProperyFalse() throws Exception {
-    System.setProperty("ssl.authPeer", "false");
-    ConcurrentCompositeConfiguration finalConfig = 
ConfigUtil.createLocalConfig();
+    Mockito.when(environment.getProperty("ssl.authPeer")).thenReturn("false");
 
-    SSLOption option = SSLOption.buildFromYaml("server", finalConfig);
+    SSLOption option = SSLOption.buildFromYaml("server", environment);
 
     boolean authPeer = option.isAuthPeer();
     option.setAuthPeer(authPeer);
@@ -238,10 +234,9 @@ public class SSLOptionTest {
 
   @Test
   public void testSSLOptionYamlOptionWithProperyTrue() throws Exception {
-    System.setProperty("ssl.authPeer", "true");
-    ConcurrentCompositeConfiguration finalConfig = 
ConfigUtil.createLocalConfig();
+    Mockito.when(environment.getProperty("ssl.authPeer")).thenReturn("true");
 
-    SSLOption option = SSLOption.buildFromYaml("server", finalConfig);
+    SSLOption option = SSLOption.buildFromYaml("server", environment);
 
     boolean authPeer = option.isAuthPeer();
     option.setAuthPeer(authPeer);
@@ -251,9 +246,12 @@ public class SSLOptionTest {
 
   @Test
   public void testSSLOptionYamlOption() throws Exception {
-    ConcurrentCompositeConfiguration finalConfig = 
ConfigUtil.createLocalConfig();
+    Mockito.when(environment.getProperty("ssl.ciphers"))
+        
.thenReturn("TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,"
+            + 
"TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,"
+            + "TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA");
 
-    SSLOption option = SSLOption.buildFromYaml("server", finalConfig);
+    SSLOption option = SSLOption.buildFromYaml("server", environment);
 
     String protocols = option.getProtocols();
     option.setProtocols(protocols);
@@ -285,7 +283,7 @@ public class SSLOptionTest {
 
     boolean allowRenegociate = option.isAllowRenegociate();
     option.setAllowRenegociate(allowRenegociate);
-    Assertions.assertFalse(allowRenegociate);
+    Assertions.assertTrue(allowRenegociate);
 
     String storePath = option.getStorePath();
     option.setStorePath(storePath);
diff --git 
a/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/TestSSLOptionFactory.java
 
b/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/TestSSLOptionFactory.java
index 3ee54ccab..6cdcc3bab 100644
--- 
a/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/TestSSLOptionFactory.java
+++ 
b/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/TestSSLOptionFactory.java
@@ -19,8 +19,8 @@ package org.apache.servicecomb.foundation.ssl;
 
 import org.junit.Test;
 import org.junit.jupiter.api.Assertions;
-
-import com.netflix.config.ConcurrentCompositeConfiguration;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 import mockit.Expectations;
 import mockit.Mock;
@@ -28,10 +28,11 @@ import mockit.MockUp;
 import mockit.Mocked;
 
 public class TestSSLOptionFactory {
+  Environment environment = Mockito.mock(Environment.class);
 
   @Test
   public void testSSLOptionFactory() {
-    SSLOptionFactory factory = SSLOptionFactory.createSSLOptionFactory("cc", 
null);
+    SSLOptionFactory factory = SSLOptionFactory.createSSLOptionFactory("cc", 
environment);
     Assertions.assertNull(factory);
   }
 
@@ -39,13 +40,13 @@ public class TestSSLOptionFactory {
   public void testSSLOptionFactoryWrong(@Mocked SSLOption option) {
     new Expectations() {
       {
-        SSLOption.getStringProperty((ConcurrentCompositeConfiguration) any, 
anyString, (String[]) any);
+        SSLOption.getStringProperty((Environment) any, anyString, (String[]) 
any);
         result = "wrong";
       }
     };
 
     IllegalStateException exception = 
Assertions.assertThrows(IllegalStateException.class,
-            () -> SSLOptionFactory.createSSLOptionFactory("cc", null));
+            () -> SSLOptionFactory.createSSLOptionFactory("cc", environment));
     Assertions.assertEquals("Failed to create SSLOptionFactory.", 
exception.getMessage());
   }
 
@@ -53,12 +54,12 @@ public class TestSSLOptionFactory {
   public void testSSLOptionFactoryCorrent() {
     new MockUp<SSLOption>() {
       @Mock
-      public String getStringProperty(ConcurrentCompositeConfiguration 
configSource, String defaultValue,
+      public String getStringProperty(Environment environment, String 
defaultValue,
           String... keys) {
         return "org.apache.servicecomb.foundation.ssl.MyOptionFactory";
       }
     };
-    SSLOptionFactory factory = SSLOptionFactory.createSSLOptionFactory("cc", 
null);
+    SSLOptionFactory factory = SSLOptionFactory.createSSLOptionFactory("cc", 
environment);
     Assertions.assertEquals(factory.createSSLOption().getProtocols(), 
"TLSv1.2");
   }
 }
diff --git 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxTLSBuilder.java
 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxTLSBuilder.java
index 8a2012e3b..35c8ab6d6 100644
--- 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxTLSBuilder.java
+++ 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxTLSBuilder.java
@@ -23,6 +23,7 @@ import java.util.Arrays;
 import java.util.HashSet;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.ssl.SSLCustom;
 import org.apache.servicecomb.foundation.ssl.SSLManager;
 import org.apache.servicecomb.foundation.ssl.SSLOption;
@@ -76,10 +77,10 @@ public final class VertxTLSBuilder {
   }
 
   public static void buildHttpClientOptions(String sslKey, HttpClientOptions 
httpClientOptions) {
-    SSLOptionFactory factory = SSLOptionFactory.createSSLOptionFactory(sslKey, 
null);
+    SSLOptionFactory factory = SSLOptionFactory.createSSLOptionFactory(sslKey, 
LegacyPropertyFactory.getEnvironment());
     SSLOption sslOption;
     if (factory == null) {
-      sslOption = SSLOption.buildFromYaml(sslKey);
+      sslOption = SSLOption.buildFromYaml(sslKey, 
LegacyPropertyFactory.getEnvironment());
     } else {
       sslOption = factory.createSSLOption();
     }
@@ -88,10 +89,10 @@ public final class VertxTLSBuilder {
   }
 
   public static void buildWebSocketClientOptions(String sslKey, 
WebSocketClientOptions webSocketClientOptions) {
-    SSLOptionFactory factory = SSLOptionFactory.createSSLOptionFactory(sslKey, 
null);
+    SSLOptionFactory factory = SSLOptionFactory.createSSLOptionFactory(sslKey, 
LegacyPropertyFactory.getEnvironment());
     SSLOption sslOption;
     if (factory == null) {
-      sslOption = SSLOption.buildFromYaml(sslKey);
+      sslOption = SSLOption.buildFromYaml(sslKey, 
LegacyPropertyFactory.getEnvironment());
     } else {
       sslOption = factory.createSSLOption();
     }
diff --git 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/server/TcpServer.java
 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/server/TcpServer.java
index 972d145ec..d9453e2ed 100644
--- 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/server/TcpServer.java
+++ 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/server/TcpServer.java
@@ -19,6 +19,7 @@ package org.apache.servicecomb.foundation.vertx.server;
 
 import java.net.InetSocketAddress;
 
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.foundation.ssl.SSLCustom;
 import org.apache.servicecomb.foundation.ssl.SSLOption;
@@ -48,10 +49,10 @@ public class TcpServer {
     NetServer netServer;
     if (endpointObject.isSslEnabled()) {
       SSLOptionFactory factory =
-          SSLOptionFactory.createSSLOptionFactory(sslKey, null);
+          SSLOptionFactory.createSSLOptionFactory(sslKey, 
LegacyPropertyFactory.getEnvironment());
       SSLOption sslOption;
       if (factory == null) {
-        sslOption = SSLOption.buildFromYaml(sslKey);
+        sslOption = SSLOption.buildFromYaml(sslKey, 
LegacyPropertyFactory.getEnvironment());
       } else {
         sslOption = factory.createSSLOption();
       }
diff --git 
a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestVertxTLSBuilder.java
 
b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestVertxTLSBuilder.java
index 9ed503df3..bd1033b53 100644
--- 
a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestVertxTLSBuilder.java
+++ 
b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestVertxTLSBuilder.java
@@ -17,12 +17,11 @@
 
 package org.apache.servicecomb.foundation.vertx;
 
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.ssl.SSLCustom;
 import org.apache.servicecomb.foundation.ssl.SSLOption;
 import org.apache.servicecomb.foundation.ssl.SSLOptionFactory;
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
+import org.junit.Before;
 import org.junit.Test;
 
 import io.vertx.core.http.ClientAuth;
@@ -31,21 +30,20 @@ import io.vertx.core.http.HttpServerOptions;
 import mockit.Mock;
 import mockit.MockUp;
 import org.junit.jupiter.api.Assertions;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 public class TestVertxTLSBuilder {
-  @BeforeClass
-  public static void classSetup() {
-    ArchaiusUtils.resetConfig();
-  }
+  Environment environment = Mockito.mock(Environment.class);
 
-  @AfterClass
-  public static void classTeardown() {
-    ArchaiusUtils.resetConfig();
+  @Before
+  public void classSetup() {
+    LegacyPropertyFactory.setEnvironment(environment);
   }
 
   @Test
   public void testBuildHttpServerOptions() {
-    SSLOption option = SSLOption.buildFromYaml("rest.provider");
+    SSLOption option = SSLOption.buildFromYaml("rest.provider", environment);
     SSLCustom custom = SSLCustom.createSSLCustom(option.getSslCustomClass());
     HttpServerOptions serverOptions = new HttpServerOptions();
     VertxTLSBuilder.buildNetServerOptions(option, custom, serverOptions);
@@ -78,7 +76,7 @@ public class TestVertxTLSBuilder {
 
   @Test
   public void testBuildHttpClientOptions_ssl_withFactory() {
-    ArchaiusUtils.setProperty("ssl.exist.sslOptionFactory", 
SSLOptionFactoryForTest.class.getName());
+    
Mockito.when(environment.getProperty("ssl.checkCN.host")).thenReturn("true");
     HttpClientOptions clientOptions = new HttpClientOptions();
     VertxTLSBuilder.buildHttpClientOptions("exist", clientOptions);
     Assertions.assertTrue(clientOptions.isSsl());
@@ -87,7 +85,7 @@ public class TestVertxTLSBuilder {
 
   @Test
   public void testBuildHttpClientOptions() {
-    SSLOption option = SSLOption.buildFromYaml("rest.consumer");
+    SSLOption option = SSLOption.buildFromYaml("rest.consumer", environment);
     SSLCustom custom = SSLCustom.createSSLCustom(option.getSslCustomClass());
     HttpClientOptions serverOptions = new HttpClientOptions();
     VertxTLSBuilder.buildHttpClientOptions(option, custom, serverOptions);
@@ -97,7 +95,7 @@ public class TestVertxTLSBuilder {
 
   @Test
   public void testBuildClientOptionsBase() {
-    SSLOption option = SSLOption.buildFromYaml("rest.consumer");
+    SSLOption option = SSLOption.buildFromYaml("rest.consumer", environment);
     SSLCustom custom = SSLCustom.createSSLCustom(option.getSslCustomClass());
     HttpClientOptions serverOptions = new HttpClientOptions();
     VertxTLSBuilder.buildClientOptionsBase(option, custom, serverOptions);
@@ -107,7 +105,7 @@ public class TestVertxTLSBuilder {
 
   @Test
   public void testBuildClientOptionsBaseFileNull() {
-    SSLOption option = SSLOption.buildFromYaml("rest.consumer");
+    SSLOption option = SSLOption.buildFromYaml("rest.consumer", environment);
     option.setKeyStore(null);
     option.setTrustStore(null);
     option.setCrl(null);
@@ -120,7 +118,7 @@ public class TestVertxTLSBuilder {
 
   @Test
   public void testBuildClientOptionsBaseAuthPeerFalse() {
-    SSLOption option = SSLOption.buildFromYaml("rest.consumer");
+    SSLOption option = SSLOption.buildFromYaml("rest.consumer", environment);
     SSLCustom custom = SSLCustom.createSSLCustom(option.getSslCustomClass());
     HttpClientOptions serverOptions = new HttpClientOptions();
     new MockUp<SSLOption>() {
@@ -137,7 +135,7 @@ public class TestVertxTLSBuilder {
 
   @Test
   public void testBuildClientOptionsBaseSTORE_JKS() {
-    SSLOption option = SSLOption.buildFromYaml("rest.consumer");
+    SSLOption option = SSLOption.buildFromYaml("rest.consumer", environment);
     SSLCustom custom = SSLCustom.createSSLCustom(option.getSslCustomClass());
     HttpClientOptions serverOptions = new HttpClientOptions();
     new MockUp<SSLOption>() {
@@ -154,7 +152,7 @@ public class TestVertxTLSBuilder {
 
   @Test
   public void testBuildClientOptionsBaseSTORE_PKCS12() {
-    SSLOption option = SSLOption.buildFromYaml("rest.consumer");
+    SSLOption option = SSLOption.buildFromYaml("rest.consumer", environment);
     SSLCustom custom = SSLCustom.createSSLCustom(option.getSslCustomClass());
     HttpClientOptions serverOptions = new HttpClientOptions();
     new MockUp<SSLOption>() {
@@ -171,7 +169,7 @@ public class TestVertxTLSBuilder {
 
   @Test
   public void testBuildHttpServerOptionsRequest() {
-    SSLOption option = SSLOption.buildFromYaml("rest.provider");
+    SSLOption option = SSLOption.buildFromYaml("rest.provider", environment);
     SSLCustom custom = SSLCustom.createSSLCustom(option.getSslCustomClass());
     HttpServerOptions serverOptions = new HttpServerOptions();
 
diff --git 
a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthHandlerBoot.java
 
b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthHandlerBoot.java
index 8c61ef7f8..068b599bb 100644
--- 
a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthHandlerBoot.java
+++ 
b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthHandlerBoot.java
@@ -22,6 +22,7 @@ import org.apache.servicecomb.core.BootListener;
 import org.apache.servicecomb.core.BootListener.BootEvent;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.foundation.token.Keypair4Auth;
 import org.apache.servicecomb.registry.RegistrationManager;
@@ -32,6 +33,8 @@ import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 public class TestAuthHandlerBoot {
   private SCBEngine engine;
@@ -39,6 +42,14 @@ public class TestAuthHandlerBoot {
   @BeforeEach
   public void setUp() {
     ConfigUtil.installDynamicConfig();
+    Environment environment = Mockito.mock(Environment.class);
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.publicKey.accessControl.keyGeneratorAlgorithm",
 "RSA"))
+        .thenReturn("RSA");
+    
Mockito.when(environment.getProperty("servicecomb.publicKey.accessControl.signAlgorithm",
 "SHA256withRSA"))
+        .thenReturn("SHA256withRSA");
+    
Mockito.when(environment.getProperty("servicecomb.publicKey.accessControl.keySize",
 int.class, 2048))
+        .thenReturn(2048);
     engine = SCBBootstrap.createSCBEngineForTest().run();
   }
 
diff --git 
a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthenticationToken.java
 
b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthenticationToken.java
index 9555a9066..c0c89874c 100644
--- 
a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthenticationToken.java
+++ 
b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthenticationToken.java
@@ -21,13 +21,27 @@ import java.security.NoSuchAlgorithmException;
 import java.security.SignatureException;
 import java.security.spec.InvalidKeySpecException;
 
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.common.utils.KeyPairUtils;
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 
 public class TestAuthenticationToken {
-
+  @BeforeAll
+  public static void setUpClass() {
+    Environment environment = Mockito.mock(Environment.class);
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.publicKey.accessControl.keyGeneratorAlgorithm",
 "RSA"))
+        .thenReturn("RSA");
+    
Mockito.when(environment.getProperty("servicecomb.publicKey.accessControl.signAlgorithm",
 "SHA256withRSA"))
+        .thenReturn("SHA256withRSA");
+    
Mockito.when(environment.getProperty("servicecomb.publicKey.accessControl.keySize",
 int.class, 2048))
+        .thenReturn(2048);
+  }
 
   @Test
   public void testRSAAuthenticationToken()
diff --git 
a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/provider/TestProviderTokenManager.java
 
b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/provider/TestProviderTokenManager.java
index db94319eb..cfa2364cf 100644
--- 
a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/provider/TestProviderTokenManager.java
+++ 
b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/provider/TestProviderTokenManager.java
@@ -22,6 +22,7 @@ import java.util.Map;
 import org.apache.servicecomb.authentication.AuthenticationToken;
 import org.apache.servicecomb.authentication.consumer.ConsumerTokenManager;
 import org.apache.servicecomb.config.ConfigUtil;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.common.utils.KeyPairEntry;
 import org.apache.servicecomb.foundation.common.utils.KeyPairUtils;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
@@ -40,12 +41,21 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.mockito.MockedStatic;
 import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 public class TestProviderTokenManager {
 
 
   @BeforeEach
   public void setUp() {
+    Environment environment = Mockito.mock(Environment.class);
+    LegacyPropertyFactory.setEnvironment(environment);
+    
Mockito.when(environment.getProperty("servicecomb.publicKey.accessControl.keyGeneratorAlgorithm",
 "RSA"))
+        .thenReturn("RSA");
+    
Mockito.when(environment.getProperty("servicecomb.publicKey.accessControl.signAlgorithm",
 "SHA256withRSA"))
+        .thenReturn("SHA256withRSA");
+    
Mockito.when(environment.getProperty("servicecomb.publicKey.accessControl.keySize",
 int.class, 2048))
+        .thenReturn(2048);
     ConfigUtil.installDynamicConfig();
   }
 
diff --git 
a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
 
b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
index 1493fea1b..4f4769491 100644
--- 
a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
+++ 
b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
@@ -26,6 +26,7 @@ import com.google.common.annotations.VisibleForTesting;
 import org.apache.servicecomb.codec.protobuf.definition.OperationProtobuf;
 import org.apache.servicecomb.codec.protobuf.definition.ProtobufManager;
 import org.apache.servicecomb.core.Invocation;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.ssl.SSLCustom;
 import org.apache.servicecomb.foundation.ssl.SSLOption;
 import org.apache.servicecomb.foundation.ssl.SSLOptionFactory;
@@ -78,10 +79,10 @@ public class HighwayClient {
         .getLongProperty("servicecomb.request.timeout", 
TcpClientConfig.DEFAULT_LOGIN_TIMEOUT).get());
 
     SSLOptionFactory factory =
-        SSLOptionFactory.createSSLOptionFactory(SSL_KEY, null);
+        SSLOptionFactory.createSSLOptionFactory(SSL_KEY, 
LegacyPropertyFactory.getEnvironment());
     SSLOption sslOption;
     if (factory == null) {
-      sslOption = SSLOption.buildFromYaml(SSL_KEY);
+      sslOption = SSLOption.buildFromYaml(SSL_KEY, 
LegacyPropertyFactory.getEnvironment());
     } else {
       sslOption = factory.createSSLOption();
     }
diff --git 
a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java
 
b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java
index 43db61433..3307474d9 100644
--- 
a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java
+++ 
b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayClient.java
@@ -31,6 +31,7 @@ import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.executor.ReactiveExecutor;
 import org.apache.servicecomb.core.invocation.InvocationStageTrace;
 import org.apache.servicecomb.foundation.common.Holder;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.foundation.vertx.VertxUtils;
 import org.apache.servicecomb.foundation.vertx.client.ClientPoolManager;
@@ -45,6 +46,7 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.jupiter.api.Assertions;
 import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 import io.vertx.core.AbstractVerticle;
 import io.vertx.core.DeploymentOptions;
@@ -74,6 +76,8 @@ public class TestHighwayClient {
 
   @BeforeClass
   public static void setup() {
+    Environment environment = Mockito.mock(Environment.class);
+    LegacyPropertyFactory.setEnvironment(environment);
     ArchaiusUtils.resetConfig();
     ArchaiusUtils.setProperty(REQUEST_TIMEOUT_KEY, 2000);
 
diff --git 
a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayTransport.java
 
b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayTransport.java
index 624fc6dd7..a4281e4f8 100644
--- 
a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayTransport.java
+++ 
b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayTransport.java
@@ -23,6 +23,7 @@ import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.foundation.common.Holder;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.foundation.vertx.VertxUtils;
 import org.apache.servicecomb.swagger.invocation.AsyncResponse;
@@ -33,6 +34,7 @@ import org.junit.jupiter.api.Assertions;
 import org.mockito.Mockito;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.core.env.Environment;
 
 import mockit.Mock;
 import mockit.MockUp;
@@ -44,6 +46,8 @@ public class TestHighwayTransport {
 
   @BeforeClass
   public static void setup() {
+    Environment environment = Mockito.mock(Environment.class);
+    LegacyPropertyFactory.setEnvironment(environment);
     VertxUtils.blockCloseVertxByName("transport");
     Thread.getAllStackTraces().keySet().forEach(t -> LOGGER.info("before: {}", 
t.getName()));
   }
diff --git 
a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
 
b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
index 9edf23126..80006e763 100644
--- 
a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
+++ 
b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
@@ -30,6 +30,7 @@ import 
org.apache.servicecomb.common.rest.codec.RestObjectMapperFactory;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.event.ServerAccessLogEvent;
 import org.apache.servicecomb.core.transport.AbstractTransport;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.common.event.EventManager;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.foundation.common.utils.ExceptionUtils;
@@ -309,10 +310,10 @@ public class RestServerVerticle extends AbstractVerticle {
     }
     if (endpointObject.isSslEnabled()) {
       SSLOptionFactory factory =
-          SSLOptionFactory.createSSLOptionFactory(SSL_KEY, null);
+          SSLOptionFactory.createSSLOptionFactory(SSL_KEY, 
LegacyPropertyFactory.getEnvironment());
       SSLOption sslOption;
       if (factory == null) {
-        sslOption = SSLOption.buildFromYaml(SSL_KEY);
+        sslOption = SSLOption.buildFromYaml(SSL_KEY, 
LegacyPropertyFactory.getEnvironment());
       } else {
         sslOption = factory.createSSLOption();
       }
diff --git 
a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
 
b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
index 13fe1bf41..c32b41b27 100644
--- 
a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
+++ 
b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
@@ -28,6 +28,7 @@ import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.core.transport.AbstractTransport;
 import org.apache.servicecomb.foundation.common.Holder;
+import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
@@ -38,6 +39,7 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.jupiter.api.Assertions;
 import org.mockito.Mockito;
+import org.springframework.core.env.Environment;
 
 import io.vertx.core.Context;
 import io.vertx.core.Handler;
@@ -63,6 +65,8 @@ public class TestRestServerVerticle {
 
   @Before
   public void setUp() {
+    Environment environment = Mockito.mock(Environment.class);
+    LegacyPropertyFactory.setEnvironment(environment);
     ConfigUtil.installDynamicConfig();
     instance = new RestServerVerticle();
     startPromise = Promise.promise();

Reply via email to