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 791c441f761..0e456385790 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.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 ConfigurationSpringInitializer() {
@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 00000000000..5abbe6f0ac5
--- /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 70b0700672c..d9aef85b42c 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.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 ab6458cffc2..057dbcf669b 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.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 b5802336d3d..334e47629bd 100644
--- a/foundations/foundation-ssl/pom.xml
+++ b/foundations/foundation-ssl/pom.xml
@@ -27,6 +27,10 @@
Java Chassis::Foundations::SSL
+
+ org.springframework
+ spring-context
+
com.netflix.archaius
archaius-core
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 bbc7e0d9d7d..86ddc026ea7 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.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 @@ private static String listToString(Object[] lists) {
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 static String getStringProperty(ConcurrentCompositeConfiguration configSo
}
}
- 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 @@ private static boolean getBooleanProperty(ConcurrentCompositeConfiguration confi
}
}
- 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 4abe85ca61b..49cdb3ab15b 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 67ae3828499..912746e71e8 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.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 void testSSLOption() {
@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 void testSSLOptionYaml() {
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 void testSSLOptionYaml() {
@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 void testSSLOptionYamlOption2() throws Exception {
@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 void testSSLOptionYamlOptionWithProperyFalse() throws Exception {
@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 void testSSLOptionYamlOptionWithProperyTrue() throws Exception {
@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 void testSSLOptionYamlOption() throws Exception {
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 3ee54ccab47..6cdcc3bab0b 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 @@
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.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 void 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 void testSSLOptionFactoryWrong(@Mocked SSLOption option) {
public void testSSLOptionFactoryCorrent() {
new MockUp() {
@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 8a2012e3b86..35c8ab6d6d5 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.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 @@ private static void setClientAuth(SSLOption sslOption, NetServerOptions netServe
}
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 static void buildHttpClientOptions(String sslKey, HttpClientOptions httpC
}
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 972d145ec77..d9453e2ed82 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 @@
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 void init(Vertx vertx, String sslKey, AsyncResultCallback() {
@@ -137,7 +135,7 @@ public boolean isAuthPeer() {
@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() {
@@ -154,7 +152,7 @@ public String getKeyStoreType() {
@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() {
@@ -171,7 +169,7 @@ public String getTrustStoreType() {
@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 8c61ef7f882..068b599bbc0 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.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.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 9555a9066bd..c0c89874c46 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.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 db94319eb4b..cfa2364cfb8 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 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.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 1493fea1b7f..4f476949179 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 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 @@ TcpClientConfig createTcpClientConfig() {
.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 43db6143352..3307474d940 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.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.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 624fc6dd775..a4281e4f877 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.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.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 9edf23126f2..80006e76383 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.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 @@ private HttpServerOptions createDefaultHttpServerOptions() {
}
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 13fe1bf41c6..c32b41b27e4 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.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.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();