public class MultiTenantRequestContext
extends org.apache.kafka.common.requests.RequestContext
Constructor and Description |
---|
MultiTenantRequestContext(org.apache.kafka.common.requests.RequestHeader header,
String connectionId,
long requestId,
InetAddress clientAddress,
io.confluent.kafka.multitenant.MultiTenantPrincipal principal,
org.apache.kafka.common.network.ListenerName listenerName,
org.apache.kafka.common.security.auth.SecurityProtocol securityProtocol,
org.apache.kafka.common.network.ClientInformation clientInformation,
org.apache.kafka.common.security.authenticator.PathAwareSniHostName sniHostName,
org.apache.kafka.common.utils.Time time,
org.apache.kafka.common.metrics.Metrics metrics,
TenantMetrics tenantMetrics,
MultiTenantInterceptorConfig config,
Optional<org.apache.kafka.server.link.ClusterLinkSourceMetrics> clusterLinkSourceMetrics,
boolean isPrivilegedListener,
Optional<org.apache.kafka.common.security.auth.KafkaPrincipalSerde> principalSerde,
org.apache.kafka.common.security.auth.AuthenticationContext authenticationContext,
org.apache.kafka.common.network.ProduceConsumeAuditLogTracker produceConsumeAuditLogTracker,
boolean isProxyModeLocal) |
Modifier and Type | Method and Description |
---|---|
org.apache.kafka.common.requests.RequestContext.ResponseSend |
buildResponseSend(org.apache.kafka.common.requests.AbstractResponse body) |
org.apache.kafka.common.requests.AbstractResponse |
intercept(org.apache.kafka.common.requests.AbstractRequest request,
int throttleTimeMs) |
static boolean |
isSupportedFFFClient(org.apache.kafka.common.requests.FetchRequest request,
boolean fetchFromFollowerRequireLeaderEpochEnabled)
The
IS_SUPPORTED_FFF_CLIENT tag is set to false if client tries to use
FetchFromFollower from KIP-392, but hasn't added CurrentLeaderEpoch to the
FetchRequest that is introduced in KIP-320. |
TenantMetrics.MetricsRequestContext |
metricsRequestContext() |
org.apache.kafka.common.requests.AbstractResponse |
parsedResponse(org.apache.kafka.common.requests.AbstractResponse response,
short version) |
org.apache.kafka.common.requests.RequestAndSize |
parseRequest(ByteBuffer buffer) |
boolean |
shouldIntercept() |
Optional<String> |
tenantPrefix() |
static org.apache.kafka.common.acl.AclBindingFilter |
transformAclFilter(String tenantPrefix,
String prefixedWildcard,
org.apache.kafka.common.acl.AclBindingFilter aclFilter) |
boolean |
transformed() |
apiKey, apiVersion, buildResponseEnvelopePayload, clientAddress, clientId, correlationId, getClientAddress, getPrincipal, getPrincipalSerde, isProxyModeLocal, kafkaRequestId, listenerName, principal, requestType, requestVersion, securityProtocol, sessionId, sniHostName, toString
public MultiTenantRequestContext(org.apache.kafka.common.requests.RequestHeader header, String connectionId, long requestId, InetAddress clientAddress, io.confluent.kafka.multitenant.MultiTenantPrincipal principal, org.apache.kafka.common.network.ListenerName listenerName, org.apache.kafka.common.security.auth.SecurityProtocol securityProtocol, org.apache.kafka.common.network.ClientInformation clientInformation, org.apache.kafka.common.security.authenticator.PathAwareSniHostName sniHostName, org.apache.kafka.common.utils.Time time, org.apache.kafka.common.metrics.Metrics metrics, TenantMetrics tenantMetrics, MultiTenantInterceptorConfig config, Optional<org.apache.kafka.server.link.ClusterLinkSourceMetrics> clusterLinkSourceMetrics, boolean isPrivilegedListener, Optional<org.apache.kafka.common.security.auth.KafkaPrincipalSerde> principalSerde, org.apache.kafka.common.security.auth.AuthenticationContext authenticationContext, org.apache.kafka.common.network.ProduceConsumeAuditLogTracker produceConsumeAuditLogTracker, boolean isProxyModeLocal)
public Optional<String> tenantPrefix()
tenantPrefix
in class org.apache.kafka.common.requests.RequestContext
public org.apache.kafka.common.requests.RequestAndSize parseRequest(ByteBuffer buffer)
parseRequest
in class org.apache.kafka.common.requests.RequestContext
public boolean shouldIntercept()
shouldIntercept
in class org.apache.kafka.common.requests.RequestContext
public org.apache.kafka.common.requests.AbstractResponse intercept(org.apache.kafka.common.requests.AbstractRequest request, int throttleTimeMs)
intercept
in class org.apache.kafka.common.requests.RequestContext
public org.apache.kafka.common.requests.RequestContext.ResponseSend buildResponseSend(org.apache.kafka.common.requests.AbstractResponse body)
buildResponseSend
in class org.apache.kafka.common.requests.RequestContext
public boolean transformed()
transformed
in class org.apache.kafka.common.requests.RequestContext
public org.apache.kafka.common.requests.AbstractResponse parsedResponse(org.apache.kafka.common.requests.AbstractResponse response, short version)
parsedResponse
in class org.apache.kafka.common.requests.RequestContext
public static org.apache.kafka.common.acl.AclBindingFilter transformAclFilter(String tenantPrefix, String prefixedWildcard, org.apache.kafka.common.acl.AclBindingFilter aclFilter)
public static boolean isSupportedFFFClient(org.apache.kafka.common.requests.FetchRequest request, boolean fetchFromFollowerRequireLeaderEpochEnabled)
IS_SUPPORTED_FFF_CLIENT
tag is set to false
if client tries to use
FetchFromFollower from KIP-392, but hasn't added CurrentLeaderEpoch
to the
FetchRequest
that is introduced in KIP-320. This function assumes that if client
implements KIP-320, then it sets valid currentLeaderEpoch
to all partitions in a
FetchRequest
. This function follows the logic of
FetchParams::isSupportedFFFClient
. If FetchParams::isSupportedFFFClient
changes, modify this function accordingly.public TenantMetrics.MetricsRequestContext metricsRequestContext()