Skip to content

feat(rumqttd): add topic ACL enforcement - #1071

Open
saeidakbari wants to merge 1 commit into
bytebeamio:mainfrom
saeidakbari:feat/rumqttd-acl
Open

feat(rumqttd): add topic ACL enforcement#1071
saeidakbari wants to merge 1 commit into
bytebeamio:mainfrom
saeidakbari:feat/rumqttd-acl

Conversation

@saeidakbari

Copy link
Copy Markdown

What

Add optional topic-level ACL enforcement to the embedded rumqttd broker.

Why

Embedded broker users need per-client authorization for publish, subscribe, unsubscribe, and will-message topics without changing clients that do not configure ACLs.

How

  • Add ClientIdentity, AclAction, and ConnectionSettings::set_acl_handler.
  • Thread authenticated identity and ACL handlers through remote connections.
  • Reject unauthorized publishes before acknowledgements or commit-log writes.
  • Return per-filter subscription/unsubscription authorization results.
  • Check delayed will messages before commit-log insertion.
  • Keep broker-internal local links explicitly trusted.
  • Bump rumqttd to 0.21.0 for the public ConnectionSettings field change.
  • Document the API and add router-level ACL regression tests.

Testing

  • cargo test -p rumqttd
  • cargo test -p rumqttd --features validate-tenant-prefix

Both pass: 37 passed, 2 ignored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant