10: Refactor Java plugins to use lambdas instead of visitors in CompilationUnit
This commit is contained in:
@@ -6,7 +6,6 @@ import com.bartek.esa.core.xml.XmlHelper;
|
||||
import com.bartek.esa.file.matcher.GlobMatcher;
|
||||
import com.github.javaparser.ast.CompilationUnit;
|
||||
import com.github.javaparser.ast.expr.MethodCallExpr;
|
||||
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
@@ -19,14 +18,8 @@ public class LoggingPlugin extends JavaPlugin {
|
||||
|
||||
@Override
|
||||
public void run(CompilationUnit compilationUnit) {
|
||||
compilationUnit.accept(new VoidVisitorAdapter<Void>() {
|
||||
@Override
|
||||
public void visit(MethodCallExpr methodCall, Void arg) {
|
||||
if (methodCall.getName().getIdentifier().matches("v|d|i|w|e|wtf")) {
|
||||
addIssue(Severity.INFO, getLineNumberFromExpression(methodCall), methodCall.toString());
|
||||
}
|
||||
super.visit(methodCall, arg);
|
||||
}
|
||||
}, null);
|
||||
compilationUnit.findAll(MethodCallExpr.class).stream()
|
||||
.filter(expr -> expr.getName().getIdentifier().matches("v|d|i|w|e|wtf"))
|
||||
.forEach(expr -> addIssue(Severity.INFO, getLineNumberFromExpression(expr), expr.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,7 @@ import com.bartek.esa.core.model.enumeration.Severity;
|
||||
import com.bartek.esa.core.xml.XmlHelper;
|
||||
import com.bartek.esa.file.matcher.GlobMatcher;
|
||||
import com.github.javaparser.ast.CompilationUnit;
|
||||
import com.github.javaparser.ast.NodeList;
|
||||
import com.github.javaparser.ast.expr.Expression;
|
||||
import com.github.javaparser.ast.expr.ObjectCreationExpr;
|
||||
import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
@@ -21,18 +18,9 @@ public class SecureRandomPlugin extends JavaPlugin {
|
||||
|
||||
@Override
|
||||
public void run(CompilationUnit compilationUnit) {
|
||||
compilationUnit.accept(new VoidVisitorAdapter<Void>() {
|
||||
@Override
|
||||
public void visit(ObjectCreationExpr objectCreation, Void arg) {
|
||||
String identifier = objectCreation.getType().getName().getIdentifier();
|
||||
NodeList<Expression> arguments = objectCreation.getArguments();
|
||||
|
||||
if(identifier.equals("SecureRandom") && arguments.isNonEmpty()) {
|
||||
addIssue(Severity.VULNERABILITY, getLineNumberFromExpression(objectCreation), objectCreation.toString());
|
||||
}
|
||||
|
||||
super.visit(objectCreation, arg);
|
||||
}
|
||||
}, null);
|
||||
compilationUnit.findAll(ObjectCreationExpr.class).stream()
|
||||
.filter(expr -> expr.getType().getName().getIdentifier().equals("SecureRandom"))
|
||||
.filter(expr -> expr.getArguments().isNonEmpty())
|
||||
.forEach(expr -> addIssue(Severity.VULNERABILITY, getLineNumberFromExpression(expr), expr.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user