diff --git a/foundations/foundation-ssl/src/main/java/io/servicecomb/foundation/ssl/SSLOption.java b/foundations/foundation-ssl/src/main/java/io/servicecomb/foundation/ssl/SSLOption.java index a34b1ce8594..54f8bf046f0 100644 --- a/foundations/foundation-ssl/src/main/java/io/servicecomb/foundation/ssl/SSLOption.java +++ b/foundations/foundation-ssl/src/main/java/io/servicecomb/foundation/ssl/SSLOption.java @@ -275,7 +275,7 @@ private static boolean getBooleanProperty(ConcurrentCompositeConfiguration confi for (String key : keys) { if (configSource != null) { if (configSource.getProperty(key) != null) { - return (Boolean) configSource.getProperty(key); + return configSource.getBoolean(key); } } else { property = DynamicPropertyFactory.getInstance().getStringProperty(key, null).get(); diff --git a/foundations/foundation-ssl/src/test/java/io/servicecomb/foundation/ssl/SSLOptionTest.java b/foundations/foundation-ssl/src/test/java/io/servicecomb/foundation/ssl/SSLOptionTest.java index 91f5035e140..836fc0aae5a 100644 --- a/foundations/foundation-ssl/src/test/java/io/servicecomb/foundation/ssl/SSLOptionTest.java +++ b/foundations/foundation-ssl/src/test/java/io/servicecomb/foundation/ssl/SSLOptionTest.java @@ -37,6 +37,7 @@ import com.netflix.config.DynamicPropertyFactory; import com.netflix.config.FixedDelayPollingScheduler; +import io.servicecomb.config.ConfigUtil; import io.servicecomb.config.archaius.scheduler.NeverStartPollingScheduler; import mockit.Deencapsulation; import mockit.Mock; @@ -213,14 +214,7 @@ public void testSSLOptionYaml() { @Test public void testSSLOptionYamlOption2() throws Exception { System.setProperty("ssl.protocols", "TLSv1.2"); - DynamicConfiguration configFromYamlFile = - new DynamicConfiguration(yamlConfigSource(), new NeverStartPollingScheduler()); - // configuration from system properties - ConcurrentMapConfiguration configFromSystemProperties = - new ConcurrentMapConfiguration(new SystemConfiguration()); - ConcurrentCompositeConfiguration finalConfig = new ConcurrentCompositeConfiguration(); - finalConfig.addConfiguration(configFromSystemProperties, "systemEnvConfig"); - finalConfig.addConfiguration(configFromYamlFile, "configFromYamlFile"); + ConcurrentCompositeConfiguration finalConfig = ConfigUtil.createLocalConfig(); SSLOption option = SSLOption.buildFromYaml("server", finalConfig); @@ -230,16 +224,35 @@ public void testSSLOptionYamlOption2() throws Exception { System.clearProperty("ssl.protocols"); } + @Test + public void testSSLOptionYamlOptionWithProperyFalse() throws Exception { + System.setProperty("ssl.authPeer", "false"); + ConcurrentCompositeConfiguration finalConfig = ConfigUtil.createLocalConfig(); + + SSLOption option = SSLOption.buildFromYaml("server", finalConfig); + + boolean authPeer = option.isAuthPeer(); + option.setAuthPeer(authPeer); + Assert.assertEquals(false, authPeer); + System.getProperties().remove("ssl.authPeer"); + } + + @Test + public void testSSLOptionYamlOptionWithProperyTrue() throws Exception { + System.setProperty("ssl.authPeer", "true"); + ConcurrentCompositeConfiguration finalConfig = ConfigUtil.createLocalConfig(); + + SSLOption option = SSLOption.buildFromYaml("server", finalConfig); + + boolean authPeer = option.isAuthPeer(); + option.setAuthPeer(authPeer); + Assert.assertEquals(true, authPeer); + System.getProperties().remove("ssl.authPeer"); + } + @Test public void testSSLOptionYamlOption() throws Exception { - DynamicConfiguration configFromYamlFile = - new DynamicConfiguration(yamlConfigSource(), new NeverStartPollingScheduler()); - // configuration from system properties - ConcurrentMapConfiguration configFromSystemProperties = - new ConcurrentMapConfiguration(new SystemConfiguration()); - ConcurrentCompositeConfiguration finalConfig = new ConcurrentCompositeConfiguration(); - finalConfig.addConfiguration(configFromSystemProperties, "systemEnvConfig"); - finalConfig.addConfiguration(configFromYamlFile, "configFromYamlFile"); + ConcurrentCompositeConfiguration finalConfig = ConfigUtil.createLocalConfig(); SSLOption option = SSLOption.buildFromYaml("server", finalConfig);