Class LocalTaintFlowSpec<Source extends org.openrewrite.java.tree.Expression,Sink extends org.openrewrite.java.tree.J>
java.lang.Object
org.openrewrite.analysis.dataflow.LocalFlowSpec<Source,Sink>
org.openrewrite.analysis.dataflow.LocalTaintFlowSpec<Source,Sink>
@Incubating(since="7.25.0")
public abstract class LocalTaintFlowSpec<Source extends org.openrewrite.java.tree.Expression,Sink extends org.openrewrite.java.tree.J>
extends LocalFlowSpec<Source,Sink>
-
Field Summary
Fields inherited from class org.openrewrite.analysis.dataflow.LocalFlowSpec
sinkType, sourceType -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal booleanisAdditionalFlowStep(DataFlowNode srcNode, DataFlowNode sinkNode) takes an existing flow-step in the graph and offers a potential next flow step.booleanisAdditionalTaintStep(DataFlowNode srcNode, DataFlowNode sinkNode) final booleanisBarrier(org.openrewrite.java.tree.Expression expression, org.openrewrite.Cursor cursor) Holds if flow through `expression` is prohibited.final booleanisBarrierGuard(Guard guard, boolean branch) booleanisSanitizer(org.openrewrite.java.tree.Expression expression, org.openrewrite.Cursor cursor) booleanisSanitizerGuard(Guard guard, boolean branch) Methods inherited from class org.openrewrite.analysis.dataflow.LocalFlowSpec
getSinkType, getSourceType, isFlowStep, isSink, isSource
-
Constructor Details
-
LocalTaintFlowSpec
public LocalTaintFlowSpec()
-
-
Method Details
-
isAdditionalFlowStep
Description copied from class:LocalFlowSpectakes an existing flow-step in the graph and offers a potential next flow step. The method can then decide if the offered potential next flow step should be considered a valid next flow step in the graph. Allows for ad-hoc taint tracking by allowing for additional, non-default flow steps to be added to the flow graph. The following is always true:srcExpression == srcCursor.getValue() && sinkExpression == sinkCursor.getValue().- Overrides:
isAdditionalFlowStepin classLocalFlowSpec<Source extends org.openrewrite.java.tree.Expression,Sink extends org.openrewrite.java.tree.J>
-
isAdditionalTaintStep
-
isBarrierGuard
- Overrides:
isBarrierGuardin classLocalFlowSpec<Source extends org.openrewrite.java.tree.Expression,Sink extends org.openrewrite.java.tree.J>
-
isSanitizerGuard
-
isBarrier
public final boolean isBarrier(org.openrewrite.java.tree.Expression expression, org.openrewrite.Cursor cursor) Description copied from class:LocalFlowSpecHolds if flow through `expression` is prohibited.- Overrides:
isBarrierin classLocalFlowSpec<Source extends org.openrewrite.java.tree.Expression,Sink extends org.openrewrite.java.tree.J>
-
isSanitizer
public boolean isSanitizer(org.openrewrite.java.tree.Expression expression, org.openrewrite.Cursor cursor)
-