Skip to content

Commit 3314b53

Browse files
upendraoupendra-vedullapallikobylynskyi
authored
Mitigate CVE-2022-37734 by updating graphql and jackson dependencies #1045 (#1046)
Co-authored-by: Upendra Vedullapalli <[email protected]> Co-authored-by: Bogdan Kobylynskyi <[email protected]>
1 parent 571b22a commit 3314b53

16 files changed

+81
-3
lines changed

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ repositories {
2121

2222
dependencies {
2323
compileOnly "org.freemarker:freemarker:2.3.31"
24-
compileOnly "com.graphql-java:graphql-java:16.2"
25-
compileOnly "com.fasterxml.jackson.core:jackson-databind:2.13.3"
24+
compileOnly "com.graphql-java:graphql-java:20.0"
25+
compileOnly "com.fasterxml.jackson.core:jackson-databind:2.14.2"
2626
compileOnly "com.typesafe:config:1.4.1"
2727

2828
testImplementation "org.junit.jupiter:junit-jupiter-api:5.7.1"

src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenAnnotationsTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.junit.jupiter.api.AfterEach;
77
import org.junit.jupiter.api.BeforeEach;
88
import org.junit.jupiter.api.Test;
9+
import org.junit.jupiter.api.extension.ExtendWith;
910

1011
import java.io.File;
1112
import java.io.IOException;
@@ -22,6 +23,7 @@
2223
import static java.util.Collections.singletonList;
2324
import static java.util.Collections.singletonMap;
2425

26+
@ExtendWith(MaxQueryTokensExtension.class)
2527
class GraphQLCodegenAnnotationsTest {
2628

2729
private final File outputBuildDir = new File("build/generated");

src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenApisTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.kobylynskyi.graphql.codegen.utils.Utils;
1111
import org.junit.jupiter.api.AfterEach;
1212
import org.junit.jupiter.api.Test;
13+
import org.junit.jupiter.api.extension.ExtendWith;
1314

1415
import java.io.File;
1516
import java.io.IOException;
@@ -28,6 +29,7 @@
2829
import static org.junit.jupiter.api.Assertions.assertEquals;
2930
import static org.junit.jupiter.api.Assertions.assertThrows;
3031

32+
@ExtendWith(MaxQueryTokensExtension.class)
3133
class GraphQLCodegenApisTest {
3234

3335
private final File outputBuildDir = new File("build/generated");

src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenFieldsResolversTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.junit.jupiter.api.AfterEach;
77
import org.junit.jupiter.api.BeforeEach;
88
import org.junit.jupiter.api.Test;
9+
import org.junit.jupiter.api.extension.ExtendWith;
910

1011
import java.io.File;
1112
import java.io.IOException;
@@ -18,6 +19,7 @@
1819
import static java.util.Collections.singletonList;
1920
import static java.util.Collections.singletonMap;
2021

22+
@ExtendWith(MaxQueryTokensExtension.class)
2123
class GraphQLCodegenFieldsResolversTest {
2224

2325
private final File outputBuildDir = new File("build/generated");

src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenGitHubTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.junit.jupiter.api.AfterEach;
88
import org.junit.jupiter.api.BeforeEach;
99
import org.junit.jupiter.api.Test;
10+
import org.junit.jupiter.api.extension.ExtendWith;
1011

1112
import java.io.File;
1213
import java.io.IOException;
@@ -17,6 +18,7 @@
1718
import static java.util.Collections.singletonList;
1819
import static org.hamcrest.MatcherAssert.assertThat;
1920

21+
@ExtendWith(MaxQueryTokensExtension.class)
2022
class GraphQLCodegenGitHubTest {
2123

2224
private final File outputBuildDir = new File("build/generated");

src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenOptionalTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.junit.jupiter.api.AfterEach;
88
import org.junit.jupiter.api.BeforeEach;
99
import org.junit.jupiter.api.Test;
10+
import org.junit.jupiter.api.extension.ExtendWith;
1011

1112
import java.io.File;
1213
import java.io.IOException;
@@ -16,6 +17,7 @@
1617
import static com.kobylynskyi.graphql.codegen.TestUtils.assertSameTrimmedContent;
1718
import static com.kobylynskyi.graphql.codegen.TestUtils.getFileByName;
1819

20+
@ExtendWith(MaxQueryTokensExtension.class)
1921
class GraphQLCodegenOptionalTest {
2022

2123
private final File outputBuildDir = new File("build/generated");

src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenRequestTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.junit.jupiter.api.AfterEach;
77
import org.junit.jupiter.api.BeforeEach;
88
import org.junit.jupiter.api.Test;
9+
import org.junit.jupiter.api.extension.ExtendWith;
910

1011
import java.io.File;
1112
import java.io.IOException;
@@ -17,6 +18,7 @@
1718
import static java.util.Collections.singletonList;
1819
import static org.junit.jupiter.api.Assertions.assertNotNull;
1920

21+
@ExtendWith(MaxQueryTokensExtension.class)
2022
class GraphQLCodegenRequestTest {
2123

2224
private final File outputBuildDir = new File("build/generated");
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.kobylynskyi.graphql.codegen;
2+
3+
import graphql.parser.ParserOptions;
4+
import org.junit.jupiter.api.extension.AfterAllCallback;
5+
import org.junit.jupiter.api.extension.BeforeAllCallback;
6+
import org.junit.jupiter.api.extension.ExtensionContext;
7+
8+
/**
9+
* This extension is to increase the {@link ParserOptions#MAX_QUERY_TOKENS}} to 20_000 JVM wide
10+
* to allow successful test schema parsing
11+
*/
12+
public class MaxQueryTokensExtension implements BeforeAllCallback, AfterAllCallback {
13+
14+
private static final ParserOptions defaultJvmParserOptions = ParserOptions.getDefaultParserOptions();
15+
16+
@Override
17+
public void beforeAll(ExtensionContext context) {
18+
ParserOptions.setDefaultParserOptions(
19+
ParserOptions.getDefaultParserOptions().transform(o -> o.maxTokens(20_000))
20+
);
21+
}
22+
23+
@Override
24+
public void afterAll(ExtensionContext context) {
25+
ParserOptions.setDefaultParserOptions(defaultJvmParserOptions);
26+
}
27+
}

src/test/java/com/kobylynskyi/graphql/codegen/kotlin/GraphQLCodegenGitHubTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package com.kobylynskyi.graphql.codegen.kotlin;
22

3+
import com.kobylynskyi.graphql.codegen.MaxQueryTokensExtension;
34
import com.kobylynskyi.graphql.codegen.TestUtils;
45
import com.kobylynskyi.graphql.codegen.model.GeneratedLanguage;
56
import com.kobylynskyi.graphql.codegen.model.MappingConfig;
67
import com.kobylynskyi.graphql.codegen.utils.Utils;
78
import org.junit.jupiter.api.AfterEach;
89
import org.junit.jupiter.api.BeforeEach;
910
import org.junit.jupiter.api.Test;
11+
import org.junit.jupiter.api.extension.ExtendWith;
1012

1113
import java.io.File;
1214
import java.io.IOException;
@@ -21,6 +23,7 @@
2123
import static java.util.Collections.singleton;
2224
import static java.util.Collections.singletonList;
2325

26+
@ExtendWith(MaxQueryTokensExtension.class)
2427
class GraphQLCodegenGitHubTest {
2528

2629
private final File outputBuildDir = new File("build/generated");

src/test/java/com/kobylynskyi/graphql/codegen/kotlin/GraphQLCodegenInitializeNullableTypesTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package com.kobylynskyi.graphql.codegen.kotlin;
22

3+
import com.kobylynskyi.graphql.codegen.MaxQueryTokensExtension;
34
import com.kobylynskyi.graphql.codegen.TestUtils;
45
import com.kobylynskyi.graphql.codegen.model.GeneratedLanguage;
56
import com.kobylynskyi.graphql.codegen.model.MappingConfig;
67
import com.kobylynskyi.graphql.codegen.utils.Utils;
78
import org.junit.jupiter.api.AfterEach;
89
import org.junit.jupiter.api.BeforeEach;
910
import org.junit.jupiter.api.Test;
11+
import org.junit.jupiter.api.extension.ExtendWith;
1012

1113
import java.io.File;
1214
import java.util.Objects;
@@ -15,6 +17,7 @@
1517
import static com.kobylynskyi.graphql.codegen.TestUtils.getFileByName;
1618
import static java.util.Collections.singletonList;
1719

20+
@ExtendWith(MaxQueryTokensExtension.class)
1821
class GraphQLCodegenInitializeNullableTypesTest {
1922

2023
private final File outputBuildDir = new File("build/generated");

0 commit comments

Comments
 (0)