This is an automated email from the ASF dual-hosted git repository.

lyndonb pushed a commit to branch TINKERPOP-3081
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/TINKERPOP-3081 by this push:
     new 2da0921312 TINKERPOP-3081 Fix traversal argument propagation under 
authenticated traversal settings.
2da0921312 is described below

commit 2da0921312b09ecf8ad70953c00ace00cec049ce
Author: lyndon <[email protected]>
AuthorDate: Wed May 29 13:27:41 2024 -0700

    TINKERPOP-3081 Fix traversal argument propagation under authenticated 
traversal settings.
---
 .../server/handler/WebSocketAuthorizationHandler.java        | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git 
a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WebSocketAuthorizationHandler.java
 
b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WebSocketAuthorizationHandler.java
index 98a24119c7..74f4da9005 100644
--- 
a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WebSocketAuthorizationHandler.java
+++ 
b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WebSocketAuthorizationHandler.java
@@ -68,11 +68,19 @@ public class WebSocketAuthorizationHandler extends 
ChannelInboundHandlerAdapter
                         final Bytecode bytecode = (Bytecode) 
requestMessage.getArgs().get(Tokens.ARGS_GREMLIN);
                         final Map<String, String> aliases = (Map<String, 
String>) requestMessage.getArgs().get(Tokens.ARGS_ALIASES);
                         final Bytecode restrictedBytecode = 
authorizer.authorize(user, bytecode, aliases);
-                        final RequestMessage restrictedMsg = 
RequestMessage.build(Tokens.OPS_BYTECODE).
+                        final RequestMessage.Builder restrictedMsgBuilder = 
RequestMessage.build(Tokens.OPS_BYTECODE).
                                 
overrideRequestId(requestMessage.getRequestId()).
                                 processor("traversal").
                                 addArg(Tokens.ARGS_GREMLIN, 
restrictedBytecode).
-                                addArg(Tokens.ARGS_ALIASES, aliases).create();
+                                addArg(Tokens.ARGS_ALIASES, aliases);
+
+                        // Apply all other arguments except the bytecode and 
aliases.
+                        for (Map.Entry<String, Object> entry : 
requestMessage.getArgs().entrySet()) {
+                            if (!Tokens.ARGS_GREMLIN.equals(entry.getKey()) && 
!Tokens.ARGS_ALIASES.equals(entry.getKey())) {
+                                restrictedMsgBuilder.addArg(entry.getKey(), 
entry.getValue());
+                            }
+                        }
+                        final RequestMessage restrictedMsg = 
restrictedMsgBuilder.create();
                         ctx.fireChannelRead(restrictedMsg);
                         break;
                     case Tokens.OPS_EVAL:

Reply via email to