kfaraz commented on code in PR #15480:
URL: https://github.com/apache/druid/pull/15480#discussion_r1429018122


##########
server/src/main/java/org/apache/druid/rpc/indexing/OverlordClientImpl.java:
##########
@@ -96,7 +97,8 @@ public ListenableFuture<Void> runTask(final String taskId, 
final Object taskObje
     return FutureUtils.transform(
         client.asyncRequest(
             new RequestBuilder(HttpMethod.POST, "/druid/indexer/v1/task")
-                .jsonContent(jsonMapper, taskObject),
+                .jsonContent(jsonMapper, taskObject)
+                .header(AuditManager.X_DRUID_AUTHOR, 
AuditManager.AUTHOR_DRUID_SYSTEM),

Review Comment:
   This seemed much easier to implement.
   
   I encountered some issues with the other approach:
   - The authenticated identity would depend on both auth impl and 
configuration. I couldn't find a definite way to determine the internal service 
identity. Basic auth creates the `druid_system` user but I don't see it being 
used in internal communication. (On second thought, let me see if I can pull 
the identity from the escalated client that is being injected)
   - When there is no auth, all requests get the identity `allowAll`. 
   - When auth is enabled, a user could still use the internal druid service 
username/password to invoke an API and bypass the audit (This is technically 
still possible by setting the author header to this specific value but that is 
less likely to happen. This is one of the reasons I chose to include a config 
for auditing system requests too).
   
   Please let me know your thoughts on this.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to