This is an automated email from the ASF dual-hosted git repository.
menghaoran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 1082c70 Rename secure unmarshal with YAML (#9405)
1082c70 is described below
commit 1082c7089abcccd4a1e1f585b9bbfa1eb2710e85
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Feb 9 18:26:36 2021 +0800
Rename secure unmarshal with YAML (#9405)
* For code format
* Rename secureUnmarshal
* Revise javadoc
* Rename secureUnmarshal
---
.../config/listener/PropertiesChangedListener.java | 2 +-
.../metadata/DataSourceChangedListener.java | 2 +-
.../listener/metadata/RuleChangedListener.java | 2 +-
.../yaml/config/YamlConfigurationConverter.java | 7 +++----
.../infra/yaml/engine/YamlEngine.java | 16 +++++++--------
.../ShardingSphereFilterYamlConstructor.java | 8 ++++----
.../constructor/ShardingSphereYamlConstructor.java | 2 +-
.../config/YamlEngineUserConfigurationTest.java | 8 ++++----
.../infra/yaml/engine/YamlEngineTest.java | 24 +++++++++++-----------
9 files changed, 35 insertions(+), 36 deletions(-)
diff --git
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/PropertiesChangedListener.java
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/PropertiesChangedListener.java
index daba89b..01482b3 100644
---
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/PropertiesChangedListener.java
+++
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/PropertiesChangedListener.java
@@ -40,6 +40,6 @@ public final class PropertiesChangedListener extends
PostGovernanceRepositoryEve
@Override
protected Optional<GovernanceEvent> createEvent(final DataChangedEvent
event) {
- return Optional.of(new
PropertiesChangedEvent(YamlEngine.unmarshalWithFilter(event.getValue(),
Properties.class)));
+ return Optional.of(new
PropertiesChangedEvent(YamlEngine.secureUnmarshal(event.getValue(),
Properties.class)));
}
}
diff --git
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/DataSourceChangedListener.java
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/DataSourceChangedListener.java
index c615294..8c9b583 100644
---
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/DataSourceChangedListener.java
+++
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/DataSourceChangedListener.java
@@ -62,7 +62,7 @@ public final class DataSourceChangedListener extends
PostGovernanceRepositoryEve
}
private DataSourceChangedEvent createDataSourceChangedEvent(final String
schemaName, final DataChangedEvent event) {
- YamlDataSourceConfigurationWrap result =
YamlEngine.unmarshalWithFilter(event.getValue(),
YamlDataSourceConfigurationWrap.class);
+ YamlDataSourceConfigurationWrap result =
YamlEngine.secureUnmarshal(event.getValue(),
YamlDataSourceConfigurationWrap.class);
Preconditions.checkState(null != result &&
!result.getDataSources().isEmpty(), "No available data sources to load for
governance.");
return new DataSourceChangedEvent(schemaName,
result.getDataSources().entrySet().stream()
.collect(Collectors.toMap(Entry::getKey, entry -> new
DataSourceConfigurationYamlSwapper().swapToObject(entry.getValue()), (oldValue,
currentValue) -> oldValue, LinkedHashMap::new)));
diff --git
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/RuleChangedListener.java
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/RuleChangedListener.java
index e6dcec3..568ec6b 100644
---
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/RuleChangedListener.java
+++
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/RuleChangedListener.java
@@ -76,7 +76,7 @@ public final class RuleChangedListener extends
PostGovernanceRepositoryEventList
}
private Collection<RuleConfiguration> getRuleConfigurations(final String
yamlContent) {
- Collection<YamlRuleConfiguration> rules =
YamlEngine.unmarshalWithFilter(yamlContent,
YamlRuleConfigurationWrap.class).getRules();
+ Collection<YamlRuleConfiguration> rules =
YamlEngine.secureUnmarshal(yamlContent,
YamlRuleConfigurationWrap.class).getRules();
Preconditions.checkState(!rules.isEmpty(), "No available rule to load
for governance.");
return new
YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(rules);
}
diff --git
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/yaml/config/YamlConfigurationConverter.java
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/yaml/config/YamlConfigurationConverter.java
index 9c9e37d..972aae3 100644
---
a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/yaml/config/YamlConfigurationConverter.java
+++
b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/yaml/config/YamlConfigurationConverter.java
@@ -48,7 +48,7 @@ public final class YamlConfigurationConverter {
* @return data source configurations
*/
public static Map<String, DataSourceConfiguration>
convertDataSourceConfigurations(final String yamlContent) {
- YamlDataSourceConfigurationWrap result =
YamlEngine.unmarshalWithFilter(yamlContent,
YamlDataSourceConfigurationWrap.class);
+ YamlDataSourceConfigurationWrap result =
YamlEngine.secureUnmarshal(yamlContent, YamlDataSourceConfigurationWrap.class);
if (null == result.getDataSources() ||
result.getDataSources().isEmpty()) {
return new LinkedHashMap<>();
}
@@ -63,8 +63,7 @@ public final class YamlConfigurationConverter {
* @return rule configurations
*/
public static Collection<RuleConfiguration>
convertRuleConfigurations(final String yamlContent) {
- return new
YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(
- YamlEngine.unmarshalWithFilter(yamlContent,
YamlRuleConfigurationWrap.class).getRules());
+ return new
YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(YamlEngine.secureUnmarshal(yamlContent,
YamlRuleConfigurationWrap.class).getRules());
}
/**
@@ -84,6 +83,6 @@ public final class YamlConfigurationConverter {
* @return properties
*/
public static Properties convertProperties(final String yamlContent) {
- return YamlEngine.unmarshalWithFilter(yamlContent, Properties.class);
+ return YamlEngine.secureUnmarshal(yamlContent, Properties.class);
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngine.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngine.java
index a069621..600ced1 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngine.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngine.java
@@ -89,7 +89,7 @@ public final class YamlEngine {
}
/**
- * Unmarshal YAML.
+ * Secure unmarshal YAML.
*
* @param yamlContent YAML content
* @param classType class type
@@ -97,31 +97,31 @@ public final class YamlEngine {
* @param <T> type of class
* @return object from YAML
*/
- public static <T> T unmarshal(final String yamlContent, final Class<T>
classType, final Collection<Class<?>> acceptedClasses) {
+ public static <T> T secureUnmarshal(final String yamlContent, final
Class<T> classType, final Collection<Class<?>> acceptedClasses) {
return new Yaml(new ShardingSphereFilterYamlConstructor(classType,
acceptedClasses)).loadAs(yamlContent, classType);
}
/**
- * Unmarshal YAML.
+ * Secure unmarshal YAML.
*
* @param yamlContent YAML content
* @param acceptedClasses accepted classes
* @return map from YAML
*/
- public static Map<?, ?> unmarshal(final String yamlContent, final
Collection<Class<?>> acceptedClasses) {
+ public static Map<?, ?> secureUnmarshal(final String yamlContent, final
Collection<Class<?>> acceptedClasses) {
return Strings.isNullOrEmpty(yamlContent) ? new LinkedHashMap<>() :
(Map) new Yaml(new
ShardingSphereFilterYamlConstructor(acceptedClasses)).load(yamlContent);
}
/**
- * Unmarshal YAML with filter.
+ * Secure unmarshal YAML.
*
* @param yamlContent YAML content
- * @param classType class type
+ * @param acceptedClass accepted class
* @param <T> type of class
* @return object from YAML
*/
- public static <T> T unmarshalWithFilter(final String yamlContent, final
Class<T> classType) {
- return new Yaml(new ShardingSphereFilterYamlConstructor(classType,
Collections.singletonList(classType))).loadAs(yamlContent, classType);
+ public static <T> T secureUnmarshal(final String yamlContent, final
Class<T> acceptedClass) {
+ return new Yaml(new ShardingSphereFilterYamlConstructor(acceptedClass,
Collections.singletonList(acceptedClass))).loadAs(yamlContent, acceptedClass);
}
/**
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/ShardingSphereFilterYamlConstructor.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/ShardingSphereFilterYamlConstructor.java
index 5e1006f..292a602 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/ShardingSphereFilterYamlConstructor.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/ShardingSphereFilterYamlConstructor.java
@@ -37,12 +37,12 @@ public final class ShardingSphereFilterYamlConstructor
extends ShardingSphereYam
}
@Override
- protected Class<?> getClassForName(final String name) throws
ClassNotFoundException {
+ protected Class<?> getClassForName(final String className) throws
ClassNotFoundException {
for (Class<?> each : acceptedClasses) {
- if (name.equals(each.getName())) {
- return super.getClassForName(name);
+ if (className.equals(each.getName())) {
+ return super.getClassForName(className);
}
}
- throw new IllegalArgumentException(String.format("Class is not
accepted: %s", name));
+ throw new IllegalArgumentException(String.format("Class is not
accepted: %s", className));
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/ShardingSphereYamlConstructor.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/ShardingSphereYamlConstructor.java
index 0a7fdcf..1bc32c0 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/ShardingSphereYamlConstructor.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/ShardingSphereYamlConstructor.java
@@ -45,7 +45,7 @@ public class ShardingSphereYamlConstructor extends
Constructor {
}
@Override
- protected Construct getConstructor(final Node node) {
+ protected final Construct getConstructor(final Node node) {
return typeConstructs.getOrDefault(node.getType(),
super.getConstructor(node));
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/auth/builtin/yaml/config/YamlEngineUserConfigurationTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/auth/builtin/yaml/config/YamlEngineUserConfigurationTest.java
index 63dc17a..01c4cb0 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/auth/builtin/yaml/config/YamlEngineUserConfigurationTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/auth/builtin/yaml/config/YamlEngineUserConfigurationTest.java
@@ -38,14 +38,14 @@ public final class YamlEngineUserConfigurationTest {
@SuppressWarnings("unchecked")
@Test
- public void assertUnmarshalMap() {
- Map<String, Object> actual = (Map<String, Object>)
YamlEngine.unmarshal("password: pwd", Collections.emptyList());
+ public void assertSecureUnmarshalMap() {
+ Map<String, Object> actual = (Map<String, Object>)
YamlEngine.secureUnmarshal("password: pwd", Collections.emptyList());
assertThat(actual.get("password").toString(), is("pwd"));
}
@Test
- public void assertUnmarshalProperties() {
- Properties actual = YamlEngine.unmarshalWithFilter("password: pwd",
Properties.class);
+ public void assertSecureUnmarshalProperties() {
+ Properties actual = YamlEngine.secureUnmarshal("password: pwd",
Properties.class);
assertThat(actual.getProperty("password"), is("pwd"));
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngineTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngineTest.java
index d1c1530..7e82ef4 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngineTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngineTest.java
@@ -75,14 +75,14 @@ public final class YamlEngineTest {
@Test
@SuppressWarnings("unchecked")
- public void assertUnmarshalWithYamlContent() {
- Map<String, Object> actual = (Map<String, Object>)
YamlEngine.unmarshal("name: test", Collections.emptyList());
+ public void assertSecureUnmarshalWithYamlContent() {
+ Map<String, Object> actual = (Map<String, Object>)
YamlEngine.secureUnmarshal("name: test", Collections.emptyList());
assertThat(actual.get("name").toString(), is("test"));
}
@Test
- public void assertUnmarshalProperties() {
- Properties actual = YamlEngine.unmarshalWithFilter("password: pwd",
Properties.class);
+ public void assertSecureUnmarshalProperties() {
+ Properties actual = YamlEngine.secureUnmarshal("password: pwd",
Properties.class);
assertThat(actual.getProperty("password"), is("pwd"));
}
@@ -94,22 +94,22 @@ public final class YamlEngineTest {
}
@Test(expected = ConstructorException.class)
- public void assertUnmarshalMapWithIllegalClasses() {
- YamlEngine.unmarshal("url: !!java.net.URLClassLoader [[!!java.net.URL
[\"http://localhost\"]]]", Collections.emptyList());
+ public void assertSecureUnmarshalMapWithIllegalClasses() {
+ YamlEngine.secureUnmarshal("url: !!java.net.URLClassLoader
[[!!java.net.URL [\"http://localhost\"]]]", Collections.emptyList());
}
@SuppressWarnings("unchecked")
@Test
- public void assertUnmarshalMapWithAcceptedClasses() {
+ public void assertSecureUnmarshalMapWithAcceptedClasses() {
Collection<Class<?>> acceptedClasses = new LinkedList<>();
acceptedClasses.add(URLClassLoader.class);
acceptedClasses.add(URL.class);
- Map<String, URLClassLoader> actual = (Map) YamlEngine.unmarshal("url:
!!java.net.URLClassLoader [[!!java.net.URL [\"http://localhost\"]]]",
acceptedClasses);
+ Map<String, URLClassLoader> actual = (Map)
YamlEngine.secureUnmarshal("url: !!java.net.URLClassLoader [[!!java.net.URL
[\"http://localhost\"]]]", acceptedClasses);
assertThat(actual.get("url").getClass().getName(),
is(URLClassLoader.class.getName()));
}
@Test
- public void assertUnmarshalWithAcceptedClass() throws IOException {
+ public void assertSecureUnmarshalWithAcceptedClass() throws IOException {
URL url =
getClass().getClassLoader().getResource("yaml/accepted-class.yaml");
assertNotNull(url);
StringBuilder yamlContent = new StringBuilder();
@@ -125,7 +125,7 @@ public final class YamlEngineTest {
acceptedClasses.add(URLClassLoader.class);
acceptedClasses.add(URL.class);
acceptedClasses.add(YamlRootRuleConfigurations.class);
- YamlRootRuleConfigurations actual =
YamlEngine.unmarshal(yamlContent.toString(), YamlRootRuleConfigurations.class,
acceptedClasses);
+ YamlRootRuleConfigurations actual =
YamlEngine.secureUnmarshal(yamlContent.toString(),
YamlRootRuleConfigurations.class, acceptedClasses);
assertThat(actual.getProps().size(), is(2));
assertThat(actual.getProps().getProperty("normal"), is("normal"));
assertTrue(actual.getProps().containsKey("url"));
@@ -133,7 +133,7 @@ public final class YamlEngineTest {
}
@Test(expected = ConstructorException.class)
- public void assertUnmarshalWithoutAcceptedClass() throws IOException {
+ public void assertSecureUnmarshalWithoutAcceptedClass() throws IOException
{
URL url =
getClass().getClassLoader().getResource("yaml/accepted-class.yaml");
assertNotNull(url);
StringBuilder yamlContent = new StringBuilder();
@@ -145,6 +145,6 @@ public final class YamlEngineTest {
yamlContent.append(line).append("\n");
}
}
- YamlEngine.unmarshalWithFilter(yamlContent.toString(),
YamlRootRuleConfigurations.class);
+ YamlEngine.secureUnmarshal(yamlContent.toString(),
YamlRootRuleConfigurations.class);
}
}