Affects Version/s: qpid-java-6.1.6, qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, qpid-java-6.0, qpid-java-6.0.1, qpid-java-6.0.2, qpid-java-6.0.3, qpid-java-6.0.4, qpid-java-6.0.5, qpid-java-6.1, qpid-java-6.0.6, qpid-java-6.1.1, qpid-java-6.1.2, qpid-java-6.0.7, qpid-java-6.1.3, qpid-java-6.0.8, qpid-java-6.1.4, qpid-java-broker-7.0.0, qpid-java-6.1.5, qpid-java-broker-7.0.1
WMC only allows to create (or edit) configured objects with names consisting only from any mixture of digits, letters, and underscores. This restriction was added into Web Management Console to meet the requirements of AMQP 0-8 protocol. The queue and exchange names in domain definition are defined as name consisting only from digits, letters, and underscores.
The queue name identifies the queue within the vhost. Queue
names may consist of any mixture of digits, letters, and
The exchange name is a client-selected string that identifies
the exchange for publish methods. Exchange names may consist
of any mixture of digits, letters, and underscores. Exchange
names are scoped by the virtual host.
However, in definitions of declare commands for queue and exchange the AMQP 0-8 specifies a regular expression for the names allowing more characters:
The same regular expression is defined in specifications for AMQP 0-9 and 0-9-1.
The names of virtual hosts in specifications for AMQP 0-8 and AMQP 0-9 should match regular expression (as per documentation for connection open)
AMQP 0-10 allows more characters in queue name
Queue names must have a length
of between 1 and 255 characters inclusive, must start with a digit, letter or underscores
('_') character, and must be otherwise encoded in UTF-8.
As a minimum, the Web Management Console should allow creation of queues, exchanges with names matching ^[a-zA-Z0-9-_.:]+$. The virtual host names matching regular expression ^[a-zA-Z0-9-_]+\$ should be allowed (i.e. continue to disallow the slash). The names of other configured objects can be unrestricted.
Alternatively, we can add some sort of AMQP compatibility modes to Web Management Console and management API when required level compatibility can be configured by the user and different validation rules can apply based on required compatibility.