Skip to content

Commit fe722f8

Browse files
authored
[openrewrite] add JavaSecurityBestPractices (#2649)
2 parents 9a778b8 + 06bf6b7 commit fe722f8

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

build.gradle

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ spotless {
3030
}
3131

3232
dependencies {
33-
rewrite(platform("org.openrewrite.recipe:rewrite-recipe-bom:3.15.0"))
34-
rewrite("org.openrewrite.recipe:rewrite-migrate-java:3.18.0")
33+
rewrite(platform('org.openrewrite.recipe:rewrite-recipe-bom:3.15.0'))
34+
rewrite('org.openrewrite.recipe:rewrite-migrate-java:3.18.0')
35+
rewrite('org.openrewrite.recipe:rewrite-java-security:3.19.0')
36+
rewrite('org.openrewrite.recipe:rewrite-rewrite:0.13.0')
3537
rewrite('org.openrewrite.recipe:rewrite-static-analysis:2.18.0')
3638
rewrite('org.openrewrite.recipe:rewrite-third-party:0.27.0')
3739
}

gradle/rewrite.gradle

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ rewrite {
55
'org.openrewrite.gradle.GradleBestPractices',
66
'org.openrewrite.java.RemoveUnusedImports',
77
'org.openrewrite.java.migrate.UpgradeToJava17',
8+
'org.openrewrite.java.recipes.JavaRecipeBestPractices',
9+
'org.openrewrite.java.recipes.RecipeTestingBestPractices',
10+
'org.openrewrite.java.security.JavaSecurityBestPractices',
11+
'org.openrewrite.staticanalysis.JavaApiBestPractices',
812
'org.openrewrite.staticanalysis.LowercasePackage',
913
'org.openrewrite.staticanalysis.MissingOverrideAnnotation',
1014
'org.openrewrite.staticanalysis.ModifierOrder',
@@ -29,6 +33,8 @@ rewrite {
2933
'**_gradle_node_plugin_example_**',
3034
'**gradle/changelog.gradle',
3135
'**gradle/java-publish.gradle',
36+
'**idea/full.clean.java',
37+
'**java-setup.gradle',
3238
'**lib-extra/build.gradle',
3339
'**lib/build.gradle',
3440
'**package-info.java',

lib/src/main/java/com/diffplug/spotless/FormatterProperties.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import java.util.stream.Collectors;
3434
import java.util.stream.IntStream;
3535

36+
import javax.xml.XMLConstants;
3637
import javax.xml.parsers.DocumentBuilder;
3738
import javax.xml.parsers.DocumentBuilderFactory;
3839
import javax.xml.parsers.ParserConfigurationException;
@@ -201,6 +202,21 @@ private Properties executeWithSupplier(Supplier<InputStream> isSupplier) throws
201202
private Node getRootNode(final InputStream is) throws IOException, IllegalArgumentException {
202203
try {
203204
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
205+
try {
206+
dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
207+
208+
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
209+
210+
dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
211+
212+
dbf.setXIncludeAware(false);
213+
dbf.setExpandEntityReferences(false);
214+
215+
dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
216+
217+
} catch (ParserConfigurationException e) {
218+
throw new IllegalStateException("Some features are not supported by your XML processor.", e);
219+
}
204220
/*
205221
* It is not required to validate or normalize attribute values for
206222
* the XMLs currently supported. Disabling validation is supported by

0 commit comments

Comments
 (0)