Class ParameterMapVisitor
java.lang.Object
org.antlr.v4.runtime.tree.AbstractParseTreeVisitor<T>
org.apache.tinkerpop.gremlin.language.grammar.DefaultGremlinBaseVisitor<Object>
org.apache.tinkerpop.gremlin.language.grammar.GenericLiteralVisitor
org.apache.tinkerpop.gremlin.language.grammar.ParameterMapVisitor
- All Implemented Interfaces:
org.antlr.v4.runtime.tree.ParseTreeVisitor<Object>,GremlinVisitor<Object>
A visitor for parsing parameter map strings that prevents traversal injection.
Extends GenericLiteralVisitor and overrides traversal-related visit methods
to throw, ensuring that no traversal can be constructed or executed during the
parameter map parsing walk. This is critical for security because
visitTerminatedTraversal in the base class would execute the traversal
immediately via TraversalTerminalMethodVisitor.
-
Field Summary
Fields inherited from class org.apache.tinkerpop.gremlin.language.grammar.GenericLiteralVisitor
antlr, TOTAL_INTEGER_RANGE_RESULT_COUNT_LIMIT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionVisit a parse tree produced byGremlinParser.genericCollectionLiteral().Visit a parse tree produced byGremlinParser.genericMapLiteral().Visit a parse tree produced byGremlinParser.genericSetLiteral().Overridden to prevent nested traversal construction in parameter maps.Overridden to prevent terminated traversal execution in parameter maps.Methods inherited from class org.apache.tinkerpop.gremlin.language.grammar.GenericLiteralVisitor
parseBoolean, parseDate, parseIntegral, parseMap, parseNumeric, parseObjectList, parseObjectVarargs, parseString, parseString, parseStringVarargs, parseStringVarargs, parseTraversalStrategyList, parseUuid, visitBinaryLiteral, visitBooleanLiteral, visitCharacterLiteral, visitDateLiteral, visitDurationLiteral, visitFloatLiteral, visitGenericLiteral, visitGenericLiteralExpr, visitGenericMapNullableLiteral, visitGenericRangeLiteral, visitInfLiteral, visitIntegerLiteral, visitNanLiteral, visitNullLiteral, visitNumericLiteral, visitPdtLiteral, visitStringLiteral, visitStringNullableLiteral, visitStringNullableLiteralVarargs, visitTraversalCardinality, visitTraversalDirection, visitTraversalDirectionLong, visitTraversalGType, visitTraversalMerge, visitTraversalPick, visitTraversalStrategy, visitTraversalT, visitTraversalTLong, visitUuidLiteralMethods inherited from class org.apache.tinkerpop.gremlin.language.grammar.DefaultGremlinBaseVisitor
notImplemented, visitBooleanArgument, visitChainedTraversal, visitClassType, visitClassTypeExpr, visitClassTypeList, visitConfiguration, visitConnectedComponentConstants, visitConnectedComponentConstants_component, visitConnectedComponentConstants_edges, visitConnectedComponentConstants_propertyName, visitConnectedComponentStringConstant, visitDateArgument, visitEmptyQuery, visitGenericArgument, visitGenericArgumentVarargs, visitGenericLiteralVarargs, visitGenericMapArgument, visitGenericMapNullableArgument, visitIntegerArgument, visitIoOptionsConstants_graphml, visitIoOptionsConstants_graphson, visitIoOptionsConstants_gryo, visitIoOptionsConstants_reader, visitIoOptionsConstants_writer, visitIoOptionsKeys, visitIoOptionsStringConstant, visitIoOptionsValues, visitKeyword, visitMapEntry, visitMapKey, visitNakedKey, visitNestedTraversalExpr, visitNestedTraversalList, visitNullableGenericLiteralMap, visitPageRankConstants, visitPageRankConstants_edges, visitPageRankConstants_propertyName, visitPageRankConstants_times, visitPageRankStringConstant, visitPeerPressureConstants, visitPeerPressureConstants_edges, visitPeerPressureConstants_propertyName, visitPeerPressureConstants_times, visitPeerPressureStringConstant, visitQuery, visitQueryList, visitRootTraversal, visitShortestPathConstants, visitShortestPathConstants_distance, visitShortestPathConstants_edges, visitShortestPathConstants_includeEdges, visitShortestPathConstants_maxDistance, visitShortestPathConstants_target, visitShortestPathStringConstant, visitStringArgument, visitStringArgumentVarargs, visitStringLiteralVarargs, visitStringNullableArgument, visitStringNullableArgumentVarargs, visitTransactionPart, visitTraversalBarrier, visitTraversalBiFunction, visitTraversalColumn, visitTraversalComparator, visitTraversalDirectionShort, visitTraversalDT, visitTraversalFunction, visitTraversalMethod, visitTraversalMethod_addE_String, visitTraversalMethod_addE_Traversal, visitTraversalMethod_addLabel_String, visitTraversalMethod_addLabel_Traversal, visitTraversalMethod_addV_Empty, visitTraversalMethod_addV_String, visitTraversalMethod_addV_Traversal, visitTraversalMethod_aggregate_String, visitTraversalMethod_all_P, visitTraversalMethod_and, visitTraversalMethod_any_P, visitTraversalMethod_as, visitTraversalMethod_asBool, visitTraversalMethod_asDate, visitTraversalMethod_asNumber_Empty, visitTraversalMethod_asNumber_traversalGType, visitTraversalMethod_asString_Empty, visitTraversalMethod_asString_Scope, visitTraversalMethod_barrier_Consumer, visitTraversalMethod_barrier_Empty, visitTraversalMethod_barrier_int, visitTraversalMethod_both, visitTraversalMethod_bothE, visitTraversalMethod_bothV, visitTraversalMethod_branch, visitTraversalMethod_by_Comparator, visitTraversalMethod_by_Empty, visitTraversalMethod_by_Function, visitTraversalMethod_by_Function_Comparator, visitTraversalMethod_by_Order, visitTraversalMethod_by_String, visitTraversalMethod_by_String_Comparator, visitTraversalMethod_by_T, visitTraversalMethod_by_Traversal, visitTraversalMethod_by_Traversal_Comparator, visitTraversalMethod_call_string, visitTraversalMethod_call_string_map, visitTraversalMethod_call_string_map_traversal, visitTraversalMethod_call_string_traversal, visitTraversalMethod_cap, visitTraversalMethod_choose_Function, visitTraversalMethod_choose_Predicate_Traversal, visitTraversalMethod_choose_Predicate_Traversal_Traversal, visitTraversalMethod_choose_Traversal, visitTraversalMethod_choose_Traversal_Traversal, visitTraversalMethod_choose_Traversal_Traversal_Traversal, visitTraversalMethod_coalesce, visitTraversalMethod_coin, visitTraversalMethod_combine_Object, visitTraversalMethod_concat_String, visitTraversalMethod_concat_Traversal_Traversal, visitTraversalMethod_conjoin_String, visitTraversalMethod_connectedComponent, visitTraversalMethod_constant, visitTraversalMethod_count_Empty, visitTraversalMethod_count_Scope, visitTraversalMethod_cyclicPath, visitTraversalMethod_dateAdd, visitTraversalMethod_dateDiff_Date, visitTraversalMethod_dateDiff_Traversal, visitTraversalMethod_dedup_Scope_String, visitTraversalMethod_dedup_String, visitTraversalMethod_difference_Object, visitTraversalMethod_discard, visitTraversalMethod_disjunct_Object, visitTraversalMethod_drop, visitTraversalMethod_dropLabel_String, visitTraversalMethod_dropLabel_Traversal, visitTraversalMethod_dropLabels_Empty, visitTraversalMethod_E, visitTraversalMethod_element, visitTraversalMethod_elementMap, visitTraversalMethod_emit_Empty, visitTraversalMethod_emit_Predicate, visitTraversalMethod_emit_Traversal, visitTraversalMethod_fail_Empty, visitTraversalMethod_fail_String, visitTraversalMethod_filter_Predicate, visitTraversalMethod_filter_Traversal, visitTraversalMethod_flatMap, visitTraversalMethod_fold_Empty, visitTraversalMethod_fold_Object_BiFunction, visitTraversalMethod_format_String, visitTraversalMethod_from_String, visitTraversalMethod_from_Traversal, visitTraversalMethod_group_Empty, visitTraversalMethod_group_String, visitTraversalMethod_groupCount_Empty, visitTraversalMethod_groupCount_String, visitTraversalMethod_has_String, visitTraversalMethod_has_String_Object, visitTraversalMethod_has_String_P, visitTraversalMethod_has_String_String_Object, visitTraversalMethod_has_String_String_P, visitTraversalMethod_has_String_String_Traversal, visitTraversalMethod_has_String_Traversal, visitTraversalMethod_has_T_Object, visitTraversalMethod_has_T_P, visitTraversalMethod_has_T_Traversal, visitTraversalMethod_hasId_Object_Object, visitTraversalMethod_hasId_P, visitTraversalMethod_hasKey_P, visitTraversalMethod_hasKey_String_String, visitTraversalMethod_hasKey_Traversal, visitTraversalMethod_hasLabel_P, visitTraversalMethod_hasLabel_String_String, visitTraversalMethod_hasLabel_Traversal, visitTraversalMethod_hasNot, visitTraversalMethod_hasValue_Object_Object, visitTraversalMethod_hasValue_P, visitTraversalMethod_hasValue_Traversal, visitTraversalMethod_id, visitTraversalMethod_identity, visitTraversalMethod_in, visitTraversalMethod_index, visitTraversalMethod_inE, visitTraversalMethod_inject, visitTraversalMethod_intersect_Object, visitTraversalMethod_inV, visitTraversalMethod_is_Object, visitTraversalMethod_is_P, visitTraversalMethod_key, visitTraversalMethod_label, visitTraversalMethod_labels, visitTraversalMethod_length_Empty, visitTraversalMethod_length_Scope, visitTraversalMethod_limit_long, visitTraversalMethod_limit_Scope_long, visitTraversalMethod_local, visitTraversalMethod_loops_Empty, visitTraversalMethod_loops_String, visitTraversalMethod_lTrim_Empty, visitTraversalMethod_lTrim_Scope, visitTraversalMethod_map, visitTraversalMethod_match_string, visitTraversalMethod_match_string_map, visitTraversalMethod_match_traversal, visitTraversalMethod_math, visitTraversalMethod_max_Empty, visitTraversalMethod_max_Scope, visitTraversalMethod_mean_Empty, visitTraversalMethod_mean_Scope, visitTraversalMethod_merge_Object, visitTraversalMethod_mergeE_empty, visitTraversalMethod_mergeE_Map, visitTraversalMethod_mergeE_Traversal, visitTraversalMethod_mergeV_empty, visitTraversalMethod_mergeV_Map, visitTraversalMethod_mergeV_Traversal, visitTraversalMethod_min_Empty, visitTraversalMethod_min_Scope, visitTraversalMethod_none_P, visitTraversalMethod_not, visitTraversalMethod_option_Merge_Map, visitTraversalMethod_option_Merge_Map_Cardinality, visitTraversalMethod_option_Merge_Traversal, visitTraversalMethod_option_Object_Traversal, visitTraversalMethod_option_Predicate_Traversal, visitTraversalMethod_option_Traversal, visitTraversalMethod_optional, visitTraversalMethod_or, visitTraversalMethod_order_Empty, visitTraversalMethod_order_Scope, visitTraversalMethod_otherV, visitTraversalMethod_out, visitTraversalMethod_outE, visitTraversalMethod_outV, visitTraversalMethod_pageRank_double, visitTraversalMethod_pageRank_Empty, visitTraversalMethod_path, visitTraversalMethod_peerPressure, visitTraversalMethod_product_Object, visitTraversalMethod_profile_Empty, visitTraversalMethod_profile_String, visitTraversalMethod_project, visitTraversalMethod_properties, visitTraversalMethod_property_Cardinality_Object, visitTraversalMethod_property_Cardinality_Object_Object_Object, visitTraversalMethod_property_Cardinality_Object_Traversal, visitTraversalMethod_property_Object, visitTraversalMethod_property_Object_Object_Object, visitTraversalMethod_property_Object_Traversal, visitTraversalMethod_property_Traversal, visitTraversalMethod_propertyMap, visitTraversalMethod_range_long_long, visitTraversalMethod_range_Scope_long_long, visitTraversalMethod_read, visitTraversalMethod_repeat_String_Traversal, visitTraversalMethod_repeat_Traversal, visitTraversalMethod_replace_Scope_String_String, visitTraversalMethod_replace_String_String, visitTraversalMethod_reverse_Empty, visitTraversalMethod_rTrim_Empty, visitTraversalMethod_rTrim_Scope, visitTraversalMethod_sack_BiFunction, visitTraversalMethod_sack_Empty, visitTraversalMethod_sample_int, visitTraversalMethod_sample_Scope_int, visitTraversalMethod_select_Column, visitTraversalMethod_select_Pop_String, visitTraversalMethod_select_Pop_String_String_String, visitTraversalMethod_select_Pop_Traversal, visitTraversalMethod_select_String, visitTraversalMethod_select_String_String_String, visitTraversalMethod_select_Traversal, visitTraversalMethod_shortestPath, visitTraversalMethod_sideEffect, visitTraversalMethod_simplePath, visitTraversalMethod_skip_long, visitTraversalMethod_skip_Scope_long, visitTraversalMethod_split_Scope_String, visitTraversalMethod_split_String, visitTraversalMethod_subgraph, visitTraversalMethod_substring_int, visitTraversalMethod_substring_int_int, visitTraversalMethod_substring_Scope_int, visitTraversalMethod_substring_Scope_int_int, visitTraversalMethod_sum_Empty, visitTraversalMethod_sum_Scope, visitTraversalMethod_tail_Empty, visitTraversalMethod_tail_long, visitTraversalMethod_tail_Scope, visitTraversalMethod_tail_Scope_long, visitTraversalMethod_timeLimit, visitTraversalMethod_times, visitTraversalMethod_to_Direction_String, visitTraversalMethod_to_String, visitTraversalMethod_to_Traversal, visitTraversalMethod_toE, visitTraversalMethod_toLower_Empty, visitTraversalMethod_toLower_Scope, visitTraversalMethod_toUpper_Empty, visitTraversalMethod_toUpper_Scope, visitTraversalMethod_toV, visitTraversalMethod_tree_Empty, visitTraversalMethod_tree_String, visitTraversalMethod_trim_Empty, visitTraversalMethod_trim_Scope, visitTraversalMethod_unfold, visitTraversalMethod_union, visitTraversalMethod_until_Predicate, visitTraversalMethod_until_Traversal, visitTraversalMethod_V, visitTraversalMethod_value, visitTraversalMethod_valueMap_boolean_String, visitTraversalMethod_valueMap_String, visitTraversalMethod_values, visitTraversalMethod_where_P, visitTraversalMethod_where_String_P, visitTraversalMethod_where_Traversal, visitTraversalMethod_with_String, visitTraversalMethod_with_String_Object, visitTraversalMethod_write, visitTraversalOperator, visitTraversalOrder, visitTraversalPop, visitTraversalPredicate, visitTraversalPredicate_between, visitTraversalPredicate_containing, visitTraversalPredicate_endingWith, visitTraversalPredicate_eq, visitTraversalPredicate_gt, visitTraversalPredicate_gte, visitTraversalPredicate_inside, visitTraversalPredicate_lt, visitTraversalPredicate_lte, visitTraversalPredicate_neq, visitTraversalPredicate_not, visitTraversalPredicate_notContaining, visitTraversalPredicate_notEndingWith, visitTraversalPredicate_notRegex, visitTraversalPredicate_notStartingWith, visitTraversalPredicate_outside, visitTraversalPredicate_regex, visitTraversalPredicate_startingWith, visitTraversalPredicate_typeOf, visitTraversalPredicate_within, visitTraversalPredicate_without, visitTraversalSackMethod, visitTraversalScope, visitTraversalSource, visitTraversalSourceSelfMethod, visitTraversalSourceSelfMethod_with, visitTraversalSourceSelfMethod_withBulk, visitTraversalSourceSelfMethod_withoutStrategies, visitTraversalSourceSelfMethod_withPath, visitTraversalSourceSelfMethod_withSack, visitTraversalSourceSelfMethod_withSideEffect, visitTraversalSourceSelfMethod_withStrategies, visitTraversalSourceSpawnMethod, visitTraversalSourceSpawnMethod_addE, visitTraversalSourceSpawnMethod_addV_Empty, visitTraversalSourceSpawnMethod_addV_String, visitTraversalSourceSpawnMethod_addV_Traversal, visitTraversalSourceSpawnMethod_call_empty, visitTraversalSourceSpawnMethod_call_string, visitTraversalSourceSpawnMethod_call_string_map, visitTraversalSourceSpawnMethod_call_string_map_traversal, visitTraversalSourceSpawnMethod_call_string_traversal, visitTraversalSourceSpawnMethod_E, visitTraversalSourceSpawnMethod_inject, visitTraversalSourceSpawnMethod_io, visitTraversalSourceSpawnMethod_match_string, visitTraversalSourceSpawnMethod_match_string_map, visitTraversalSourceSpawnMethod_mergeE_Map, visitTraversalSourceSpawnMethod_mergeE_Traversal, visitTraversalSourceSpawnMethod_mergeV_Map, visitTraversalSourceSpawnMethod_mergeV_Traversal, visitTraversalSourceSpawnMethod_union, visitTraversalSourceSpawnMethod_V, visitTraversalStrategyExpr, visitTraversalStrategyVarargs, visitTraversalTerminalMethod, visitTraversalTerminalMethod_explain, visitTraversalTerminalMethod_hasNext, visitTraversalTerminalMethod_iterate, visitTraversalTerminalMethod_next, visitTraversalTerminalMethod_toBulkSet, visitTraversalTerminalMethod_toList, visitTraversalTerminalMethod_toSet, visitTraversalTerminalMethod_tryNext, visitTraversalTShort, visitVariable, visitWithOptionKeys, visitWithOptionsConstants_all, visitWithOptionsConstants_ids, visitWithOptionsConstants_indexer, visitWithOptionsConstants_keys, visitWithOptionsConstants_labels, visitWithOptionsConstants_list, visitWithOptionsConstants_map, visitWithOptionsConstants_none, visitWithOptionsConstants_tokens, visitWithOptionsConstants_values, visitWithOptionsStringConstant, visitWithOptionsValuesMethods inherited from class org.antlr.v4.runtime.tree.AbstractParseTreeVisitor
aggregateResult, defaultResult, shouldVisitNextChild, visit, visitChildren, visitErrorNode, visitTerminalMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.antlr.v4.runtime.tree.ParseTreeVisitor
visit, visitChildren, visitErrorNode, visitTerminal
-
Constructor Details
-
ParameterMapVisitor
-
ParameterMapVisitor
-
-
Method Details
-
visitNestedTraversal
Overridden to prevent nested traversal construction in parameter maps.- Specified by:
visitNestedTraversalin interfaceGremlinVisitor<Object>- Overrides:
visitNestedTraversalin classGenericLiteralVisitor- Parameters:
ctx- the parse tree- Returns:
- the visitor result
-
visitTerminatedTraversal
Overridden to prevent terminated traversal execution in parameter maps. This is the critical override because the base class would execute the traversal immediately viaTraversalTerminalMethodVisitor.- Specified by:
visitTerminatedTraversalin interfaceGremlinVisitor<Object>- Overrides:
visitTerminatedTraversalin classGenericLiteralVisitor- Parameters:
ctx- the parse tree- Returns:
- the visitor result
-
visitGenericMapLiteral
Description copied from class:GenericLiteralVisitorVisit a parse tree produced byGremlinParser.genericMapLiteral().- Specified by:
visitGenericMapLiteralin interfaceGremlinVisitor<Object>- Overrides:
visitGenericMapLiteralin classGenericLiteralVisitor- Parameters:
ctx- the parse tree- Returns:
- the visitor result
-
visitGenericCollectionLiteral
Description copied from class:GenericLiteralVisitorVisit a parse tree produced byGremlinParser.genericCollectionLiteral(). Generic literal collection returns a list ofObject- Specified by:
visitGenericCollectionLiteralin interfaceGremlinVisitor<Object>- Overrides:
visitGenericCollectionLiteralin classGenericLiteralVisitor- Parameters:
ctx- the parse tree- Returns:
- the visitor result
-
visitGenericSetLiteral
Description copied from class:DefaultGremlinBaseVisitorVisit a parse tree produced byGremlinParser.genericSetLiteral().- Specified by:
visitGenericSetLiteralin interfaceGremlinVisitor<Object>- Overrides:
visitGenericSetLiteralin classGenericLiteralVisitor- Parameters:
ctx- the parse tree- Returns:
- the visitor result
-