Class ControllerRequestContext

java.lang.Object
com.linkedin.venice.controller.server.ControllerRequestContext

public class ControllerRequestContext extends Object
Transport-agnostic request context that carries client identity information. Both HTTP and gRPC layers populate this before calling handlers.
  • Constructor Details

    • ControllerRequestContext

      public ControllerRequestContext(X509Certificate clientCertificate, String clientPrincipalId)
  • Method Details

    • getClientCertificate

      public Optional<X509Certificate> getClientCertificate()
    • getClientPrincipalId

      public String getClientPrincipalId()
    • anonymous

      public static ControllerRequestContext anonymous()
      Creates a context for unauthenticated/internal requests
    • fromGrpcContext

      public static ControllerRequestContext fromGrpcContext(io.grpc.Context context)
      Builds a ControllerRequestContext from a gRPC context. Extracts client certificate and client address for request tracking and potential ACL checks.
      Parameters:
      context - the gRPC context containing client details
      Returns:
      a ControllerRequestContext with client information
    • fromHttpRequest

      public static ControllerRequestContext fromHttpRequest(spark.Request request, boolean sslEnabled, Optional<DynamicAccessController> accessController)
      Builds a ControllerRequestContext from an HTTP request. Extracts client certificate and principal ID for request tracking and potential ACL checks.
      Parameters:
      request - the HTTP request
      sslEnabled - whether SSL is enabled
      accessController - optional access controller for principal ID extraction
      Returns:
      a ControllerRequestContext with client information