-
-
Notifications
You must be signed in to change notification settings - Fork 8
011 - user namespace filter #80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
9e9432f
to
a839c2e
Compare
Signed-off-by: Keith Wall <[email protected]>
a839c2e
to
a49d74a
Compare
|
||
For the initial release, the filter will need to support only namespacing for consumer group names and transactional ids. There will be scope for the filter to support prefixing of topic resources, but this won’t be supported in the initial release. | ||
|
||
This proposal will deliver a simple implementation of the API that simply uses the principal as the prefix. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which Principal? Does it support SASL and TLS? authorizationId
implies it's SASL oriented, I think the proposal should talk about this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given #79 (comment), I think the mapper will accept the Subject and they'll be configuration saying what Principal type should be accessed from the Subject. If the Principal isn't present, it'll fail.
```java | ||
interface ResourceNameMapper { | ||
/** Return a mapping of downstream names to upstream names. */ | ||
CompletionStage<Map<String, String>> mapDownstreamResourceNames(String authorizationId, ResourceType resourceType, List<String> downstreamResourceNames); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what would happen if there is no SASL transaction for a connection? Is authorizationId nullable? Or does the Filter not do any resource mapping if there is no authorizationId?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it only makes sense to use this filter when a filter has been established on the channel.
I said on the sync call, I'll iterate on the APIs in a PR then update the proposal. |
Proposes the introduction of a "User Namespace Filter" to Kroxylicious's core filters.
The role of the User Namespace Filter is to give the client a private space within the kafka cluster space that is isolated from other users sharing the cluster. Namespacing can be applied selectively to different resource types. This allows the possibility for some resource types (probably topics) to be shared between users while others (consumer group names and transactional ids) are private.