Skip to content

Commit

Permalink
Remove Random import during SecureRandom recipe (#132)
Browse files Browse the repository at this point in the history
Fixes #131
  • Loading branch information
Bananeweizen committed May 7, 2024
1 parent 24cca64 commit b7aed0e
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ public J.NewClass visitNewClass(J.NewClass newClass, ExecutionContext ctx) {
J.NewClass n = super.visitNewClass(newClass, ctx);
if (TypeUtils.isOfClassType(newClass.getType(), "java.util.Random")) {
maybeAddImport("java.security.SecureRandom");
maybeRemoveImport("java.util.Random");
return JavaTemplate.builder("new SecureRandom()")
.imports("java.security.SecureRandom")
.build()
Expand Down
29 changes: 29 additions & 0 deletions src/test/java/org/openrewrite/java/security/SecureRandomTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import org.junit.jupiter.api.Test;
import org.openrewrite.DocumentExample;
import org.openrewrite.Issue;
import org.openrewrite.test.RecipeSpec;
import org.openrewrite.test.RewriteTest;

Expand All @@ -30,6 +31,7 @@ public void defaults(RecipeSpec spec) {
}

@DocumentExample
@Issue("https://github.com/openrewrite/rewrite-java-security/issues/131")
@Test
void secureContext() {
rewriteRun(
Expand Down Expand Up @@ -59,4 +61,31 @@ String generateSecretToken() {
)
);
}

@Test
void removeImport() {
rewriteRun(
//language=java
java(
"""
import java.util.Random;
public class A {
void generateSecretToken() {
int num = new Random().nextInt();
}
}
""",
"""
import java.security.SecureRandom;
public class A {
void generateSecretToken() {
int num = new SecureRandom().nextInt();
}
}
"""
)
);
}
}

0 comments on commit b7aed0e

Please sign in to comment.