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