Class TenantContext
java.lang.Object
io.confluent.kafka.multitenant.schema.TenantContext
- All Implemented Interfaces:
org.apache.kafka.common.protocol.MessageContext
public class TenantContext
extends Object
implements org.apache.kafka.common.protocol.MessageContext
This class contains the core logic to transform Kafka requests and responses so that
topics/groups/etc have appropriate tenant prefixes. The
TenantContext is built
from the authentication context and passed through to the serde in order to add or
remove the tenant prefix. We use EntityType to determine which transformation
is needed.
Note also that there are additional transformations/validations done inside
MultiTenantRequestContext.-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringfinal Stringfinal io.confluent.kafka.multitenant.MultiTenantPrincipalFields inherited from interface org.apache.kafka.common.protocol.MessageContext
IDENTITY -
Constructor Summary
ConstructorsConstructorDescriptionTenantContext(io.confluent.kafka.multitenant.MultiTenantPrincipal principal) -
Method Summary
Modifier and TypeMethodDescriptionaddTenantPrefix(String value) static StringaddTenantPrefix(String prefix, String value) static StringaddTenantPrefixNullable(String prefix, String value) static StringaddTenantPrefixToPrincipal(String prefix, String principalString) static StringextractTenant(String prefixedName) static StringextractTenantPrefix(String prefixedName) booleanhasTenantPrefix(String value) static booleanhasTenantPrefix(String prefix, String prefixedName) static booleanisTenantPrefixed(String prefixedName) static booleanisTransformRequired(org.apache.kafka.common.resource.ResourceType resourceType) prefix()intorg.apache.kafka.common.protocol.Messageread(org.apache.kafka.common.protocol.EntityType entityType, org.apache.kafka.common.protocol.Message value) removeAllTenantPrefixes(String message) static StringremovePrefix(String value) removeTenantPrefix(String value) org.apache.kafka.common.TopicPartitionremoveTenantPrefix(org.apache.kafka.common.TopicPartition tp) removeTenantPrefixNullable(String value) intsizeOfRemovedPrefixes(String message) org.apache.kafka.common.protocol.Messagewrite(org.apache.kafka.common.protocol.EntityType entityType, org.apache.kafka.common.protocol.Message value)
-
Field Details
-
DELIMITER
- See Also:
-
principal
public final io.confluent.kafka.multitenant.MultiTenantPrincipal principal -
prefix
-
-
Constructor Details
-
TenantContext
public TenantContext(io.confluent.kafka.multitenant.MultiTenantPrincipal principal)
-
-
Method Details
-
isTenantPrefixed
-
extractTenantPrefix
-
extractTenant
-
addTenantPrefix
-
addTenantPrefix
-
addTenantPrefixNullable
-
prefix
-
prefixSizeInBytes
public int prefixSizeInBytes() -
removeTenantPrefix
public org.apache.kafka.common.TopicPartition removeTenantPrefix(org.apache.kafka.common.TopicPartition tp) -
removePrefix
-
removeTenantPrefix
-
removeTenantPrefixNullable
-
hasTenantPrefix
-
hasTenantPrefix
-
removeAllTenantPrefixes
-
sizeOfRemovedPrefixes
-
prefixedWildcard
-
write
-
write
public org.apache.kafka.common.protocol.Message write(org.apache.kafka.common.protocol.EntityType entityType, org.apache.kafka.common.protocol.Message value) - Specified by:
writein interfaceorg.apache.kafka.common.protocol.MessageContext
-
read
-
read
public org.apache.kafka.common.protocol.Message read(org.apache.kafka.common.protocol.EntityType entityType, org.apache.kafka.common.protocol.Message value) - Specified by:
readin interfaceorg.apache.kafka.common.protocol.MessageContext
-
addTenantPrefixToPrincipal
-
isTransformRequired
public static boolean isTransformRequired(org.apache.kafka.common.resource.ResourceType resourceType)
-