ACL updates

The creation, deletion, or modification of the ACL associated with a topic causes a publication using the following system topics:
$SYS/Broker/broker_name/Topic/topic
where:
broker_name
is the name of the broker issuing this message
topic
is the topic whose ACL is being modified

The body of each publication is an XML message that describes the ACL update.

These events are nonpersistent, non-retained publications.

Certain operations delete all ACL entries for a single topic or for all topics. In this case, the individual entries are not published in the event publication. Instead, the body of the event publication contains a single XML tag that indicates that all ACL entries have been deleted.

Examples

Here are example event messages for an ACL being created, changed, and deleted, together with examples for all ACLs being deleted on a single topic and all topics.

ACL created

Event publication topic = "$SYS/Broker/Broker1/Topic/stock/IBM"

<Broker uuid="1234" label="Broker1" version="1">
  <ControlGroup>
    <DynamicSubscriptionEngine>
      <Topic name="stock/IBM">
        <Create>
          <ACLEntry
            principalName="Fred"
            principalType="user"
            publish="false"
            subscribe="inherit"
            persistent="true"/>
        </Create>
      </Topic>
    </DynamicSubscriptionEngine>
  </ControlGroup>
</Broker>

ACL changed

Event publication topic = "$SYS/Broker/Broker1/Topic/stock/IBM"

<Broker uuid="1234" label="Broker1" version="1">
  <ControlGroup>
    <DynamicSubscriptionEngine>
      <Topic name="stock/IBM">
        <Change>
          <ACLEntry
            principalName="Fred"
            principalType="user"
            publish="true"
            subscribe="false"
            persistent="inherit"/>
        </Change>
      </Topic>
    </DynamicSubscriptionEngine>
  </ControlGroup>
</Broker>

ACL deleted

Event publication topic = "$SYS/Broker/Broker1/Topic/stock/IBM"

<Broker uuid="1234" label="Broker1" version="1">
  <ControlGroup>
    <DynamicSubscriptionEngine>
      <Topic name="stock/IBM">
        <Delete>
          <ACLEntry principalName="Fred"/>
        </Delete>
      </Topic>
    </DynamicSubscriptionEngine>
  </ControlGroup>
</Broker>

All ACLs deleted on a single topic

Event publication topic = "$SYS/Broker/Broker1/Topic/stock/IBM"

<Broker uuid="1234" label="Broker1" version="1">
  <ControlGroup>
    <DynamicSubscriptionEngine>
      <Topic name="stock/IBM">
        <Delete>
          <AllACLEntries/>
        </Delete>
      </Topic>
    </DynamicSubscriptionEngine>
  </ControlGroup>
</Broker>

All ACLs deleted on all topics

Event publication topic = "$SYS/Broker/Broker1/Topic"

<Broker uuid="1234" label="Broker1" version="1">
  <ControlGroup>
    <DynamicSubscriptionEngine>
        <Delete>
          <AllACLEntries/>
        </Delete>
    </DynamicSubscriptionEngine>
  </ControlGroup>
</Broker>
Related concepts
Broker domains
Related tasks
Creating a broker