ACL rules use 'name=value' formatting. In the case of ACL rule PUBLISH EXCHANGE the exchange name must be specified with a name= setting. However, in the case of the default exchange the exchange name is blank. There is no way to specify a blank exchange name and there is no acceptable workaround.
The proposal is to add keyword amq.default to the ACL syntax so that when a PUBLISH EXCHANGE rule exchange name is specified with this keyword then the run-time rule will actually match a blank exchange name.
|Design consideration||Proposed feature|
|Automated testing approach||easy to test|
|Impact on public API||Adds new keyword to ACL file syntax|
||No. Old code will try to match literal 'amq.default' text|
|Performance implications||Per-message publish exchange lookup tests a bool in the rule before checking that the name in the lookup is blank|
|Security implications||New method already protected by ACL|