import java import semmle.code.java.dataflow.DataFlow module Config implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src.asExpr().(MethodCall).getMethod().hasName("source") } predicate isSink(DataFlow::Node sink) { exists(MethodCall ma | sink.asExpr() = ma.getAnArgument() and ma.getMethod().hasName("sink") ) } } module Flow = DataFlow::Global; from DataFlow::Node src, DataFlow::Node sink where Flow::flow(src, sink) select src, sink