Skip to content

Commit bc4e6ab

Browse files
committed
TINKERPOP-2902 bump snakeyaml to 2.0 and commons-configuration to 2.9.0
1 parent 8267422 commit bc4e6ab

6 files changed

Lines changed: 21 additions & 11 deletions

File tree

CHANGELOG.asciidoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
3333
* Changed `gremlin-console` to add imports via an ImportCustomizer to reduce time spent resolving imports.
3434
* Bumped to Groovy 2.5.21.
3535
* Added `AuthInfoProvider` interface and `NewDynamicAuth()` to gremlin-go for dynamic authentication support.
36+
* Bumped to `snakeyaml` 2.0 to fix security vulnerability.
37+
* Bumped to Apache `commons-configuration` 2.9.0 to fix security vulnerability.
3638
3739
[[release-3-5-5]]
3840
=== TinkerPop 3.5.5 (Release Date: January 16, 2023)

gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.apache.commons.configuration2.Configuration;
2222
import org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1;
2323
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
24+
import org.yaml.snakeyaml.LoaderOptions;
2425
import org.yaml.snakeyaml.TypeDescription;
2526
import org.yaml.snakeyaml.Yaml;
2627
import org.yaml.snakeyaml.constructor.Constructor;
@@ -111,10 +112,11 @@ final class Settings {
111112
public static Settings read(final InputStream stream) {
112113
Objects.requireNonNull(stream);
113114

114-
final Constructor constructor = new Constructor(Settings.class);
115+
final LoaderOptions options = new LoaderOptions();
116+
final Constructor constructor = new Constructor(Settings.class, options);
115117
final TypeDescription settingsDescription = new TypeDescription(Settings.class);
116-
settingsDescription.putListPropertyType("hosts", String.class);
117-
settingsDescription.putListPropertyType("serializers", SerializerSettings.class);
118+
settingsDescription.addPropertyParameters("hosts", String.class);
119+
settingsDescription.addPropertyParameters("serializers", SerializerSettings.class);
118120
constructor.addTypeDescription(settingsDescription);
119121

120122
final Yaml yaml = new Yaml(constructor);

gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/FileSandboxExtension.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ package org.apache.tinkerpop.gremlin.groovy.jsr223.customizer
2020

2121
import org.slf4j.Logger
2222
import org.slf4j.LoggerFactory
23+
import org.yaml.snakeyaml.LoaderOptions
2324
import org.yaml.snakeyaml.TypeDescription
2425
import org.yaml.snakeyaml.Yaml
2526
import org.yaml.snakeyaml.constructor.Constructor
@@ -101,7 +102,8 @@ class FileSandboxExtension extends AbstractSandboxExtension {
101102
public Map<String,String> staticVariableTypes
102103

103104
public static Settings read(final File file) throws Exception {
104-
final Constructor constructor = new Constructor(Settings.class)
105+
final LoaderOptions options = new LoaderOptions()
106+
final Constructor constructor = new Constructor(Settings.class, options)
105107
final TypeDescription settingsDescription = new TypeDescription(Settings.class)
106108
settingsDescription.putListPropertyType("methodWhiteList", String.class)
107109
settingsDescription.putMapPropertyType("staticVariableTypes", String.class, String.class)

gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import org.apache.tinkerpop.gremlin.structure.Graph;
3838
import org.slf4j.Logger;
3939
import org.slf4j.LoggerFactory;
40+
import org.yaml.snakeyaml.LoaderOptions;
4041
import org.yaml.snakeyaml.TypeDescription;
4142
import org.yaml.snakeyaml.Yaml;
4243
import org.yaml.snakeyaml.constructor.Constructor;
@@ -336,7 +337,8 @@ public static Settings read(final String file) throws Exception {
336337
* @return a {@link Constructor} to parse a Gremlin Server YAML
337338
*/
338339
protected static Constructor createDefaultYamlConstructor() {
339-
final Constructor constructor = new Constructor(Settings.class);
340+
final LoaderOptions options = new LoaderOptions();
341+
final Constructor constructor = new Constructor(Settings.class, options);
340342
final TypeDescription settingsDescription = new TypeDescription(Settings.class);
341343
settingsDescription.addPropertyParameters("graphs", String.class, String.class);
342344
settingsDescription.addPropertyParameters("scriptEngines", String.class, ScriptEngineSettings.class);
@@ -346,7 +348,7 @@ protected static Constructor createDefaultYamlConstructor() {
346348
constructor.addTypeDescription(settingsDescription);
347349

348350
final TypeDescription serializerSettingsDescription = new TypeDescription(SerializerSettings.class);
349-
serializerSettingsDescription.putMapPropertyType("config", String.class, Object.class);
351+
serializerSettingsDescription.addPropertyParameters("config", String.class, Object.class);
350352
constructor.addTypeDescription(serializerSettingsDescription);
351353

352354
final TypeDescription scriptEngineSettingsDescription = new TypeDescription(ScriptEngineSettings.class);

gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/authz/AllowList.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
*/
1919
package org.apache.tinkerpop.gremlin.server.authz;
2020

21+
import org.yaml.snakeyaml.LoaderOptions;
2122
import org.yaml.snakeyaml.TypeDescription;
2223
import org.yaml.snakeyaml.Yaml;
2324
import org.yaml.snakeyaml.constructor.Constructor;
@@ -58,10 +59,11 @@ public class AllowList {
5859
public static AllowList read(final String file) throws Exception {
5960
final InputStream stream = new FileInputStream(new File(file));
6061

61-
final Constructor constructor = new Constructor(AllowList.class);
62+
final LoaderOptions options = new LoaderOptions();
63+
final Constructor constructor = new Constructor(AllowList.class, options);
6264
final TypeDescription allowListDescription = new TypeDescription(AllowList.class);
63-
allowListDescription.putMapPropertyType("grants", String.class, Object.class);
64-
allowListDescription.putMapPropertyType("groups", String.class, Object.class);
65+
allowListDescription.addPropertyParameters("grants", String.class, Object.class);
66+
allowListDescription.addPropertyParameters("groups", String.class, Object.class);
6567
constructor.addTypeDescription(allowListDescription);
6668

6769
final Yaml yaml = new Yaml(constructor);

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ limitations under the License.
152152
<antlr4.version>4.9.1</antlr4.version>
153153
<caffeine.version>2.3.1</caffeine.version>
154154
<commons.collections.version>3.2.2</commons.collections.version>
155-
<commons.configuration.version>2.8.0</commons.configuration.version>
155+
<commons.configuration.version>2.9.0</commons.configuration.version>
156156
<commons.lang.version>2.6</commons.lang.version>
157157
<commons.io.version>2.8.0</commons.io.version>
158158
<commons.lang3.version>3.11</commons.lang3.version>
@@ -173,7 +173,7 @@ limitations under the License.
173173
<mockito.version>3.3.3</mockito.version>
174174
<netty.version>4.1.86.Final</netty.version>
175175
<slf4j.version>1.7.25</slf4j.version>
176-
<snakeyaml.version>1.32</snakeyaml.version>
176+
<snakeyaml.version>2.0</snakeyaml.version>
177177
<spark.version>3.0.0</spark.version>
178178
<powermock.version>2.0.9</powermock.version>
179179

0 commit comments

Comments
 (0)