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, toStringpublic 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.RequestContextpublic org.apache.kafka.common.requests.RequestAndSize parseRequest(ByteBuffer buffer)
parseRequest in class org.apache.kafka.common.requests.RequestContextpublic boolean shouldIntercept()
shouldIntercept in class org.apache.kafka.common.requests.RequestContextpublic org.apache.kafka.common.requests.AbstractResponse intercept(org.apache.kafka.common.requests.AbstractRequest request,
int throttleTimeMs)
intercept in class org.apache.kafka.common.requests.RequestContextpublic org.apache.kafka.common.requests.RequestContext.ResponseSend buildResponseSend(org.apache.kafka.common.requests.AbstractResponse body)
buildResponseSend in class org.apache.kafka.common.requests.RequestContextpublic boolean transformed()
transformed in class org.apache.kafka.common.requests.RequestContextpublic org.apache.kafka.common.requests.AbstractResponse parsedResponse(org.apache.kafka.common.requests.AbstractResponse response,
short version)
parsedResponse in class org.apache.kafka.common.requests.RequestContextpublic 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()