Author: rgodfrey
Date: Thu Dec 31 04:02:11 2015
New Revision: 1722418
URL: http://svn.apache.org/viewvc?rev=1722418&view=rev
Log:
QPID-6576 : Add documentation on end-to-end encryption
Added:
qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Message-Encryption.xml
- copied, changed from r1722330,
qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Binding-URL.xml
Modified:
qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Binding-URL.xml
qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Book.xml
qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Connection-URL.xml
Modified:
qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Binding-URL.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Binding-URL.xml?rev=1722418&r1=1722417&r2=1722418&view=diff
==============================================================================
--- qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Binding-URL.xml
(original)
+++ qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Binding-URL.xml
Thu Dec 31 04:02:11 2015
@@ -138,6 +138,19 @@
is not specified, the messages won't be moved to the DLQ (or
dropped) when delivery
count exceeds the maximum. </para></entry>
</row>
+ <row xml:id="JMS-Client-0-8-Binding-URL-Options-SendEncrypted">
+ <entry><para>sendencrypted</para></entry>
+ <entry><para>boolean </para></entry>
+ <entry><para>If true then encrypt every message sent to this
address. </para></entry>
+ </row>
+
+ <row
xml:id="JMS-Client-0-8-Binding-URL-Options-EncryptedRecipients">
+ <entry><para>encryptedrecipients</para></entry>
+ <entry><para>string </para></entry>
+ <entry><para>A semi-colon separated list of the names of the
recipients who for whom the
+ secret key will be made available (though encrypting with
their privte key) and thus will
+ be able to decrypt the message. </para></entry>
+ </row>
</tbody>
</tgroup>
</table>
Modified: qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Book.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Book.xml?rev=1722418&r1=1722417&r2=1722418&view=diff
==============================================================================
--- qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Book.xml (original)
+++ qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Book.xml Thu Dec
31 04:02:11 2015
@@ -31,6 +31,7 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="JMS-Client-JNDI-Properties-Format.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="JMS-Client-Connection-URL.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="JMS-Client-Binding-URL.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="JMS-Client-Message-Encryption.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="JMS-Client-System-Properties.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="JMS-Client-Logging.xml"/>
Modified:
qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Connection-URL.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Connection-URL.xml?rev=1722418&r1=1722417&r2=1722418&view=diff
==============================================================================
--- qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Connection-URL.xml
(original)
+++ qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Connection-URL.xml
Thu Dec 31 04:02:11 2015
@@ -353,6 +353,37 @@
<entry> If
<literal>tcp_nodelay='true'</literal>, TCP packet batching is
disabled. Defaults to true
since Qpid 0.14. </entry>
</row>
+ <row
xml:id="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionTrustStore">
+ <entry> encryption_trust_store </entry>
+ <entry> String </entry>
+ <entry> Path to trust store. Used when
using Message Encryption this path is used for the
+ trust store containing the X509
Certificates of potential recipients.</entry>
+ </row>
+ <row
xml:id="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionTrustStorePassword">
+ <entry> encyrption_trust_store_password
</entry>
+ <entry> String </entry>
+ <entry> Trust store password. Password
used to open the Message Encryption trust store. </entry>
+ </row>
+ <row
xml:id="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionRemoreTrustStore">
+ <entry> encryption_remote_trust_store
</entry>
+ <entry> String </entry>
+ <entry> Remote Trust Store. The address
of a message source on the broker which will be used
+ to generate a trust store
containing the X509 Certificates of potential recipients of
+ encrypted messages. </entry>
+ </row>
+ <row
xml:id="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionKeyStore">
+ <entry> encryption_key_store </entry>
+ <entry> String </entry>
+ <entry> Path to key store. Used when
using Message Encryption this path is used for the
+ key store containing the
certificates and private keys for all the identities which this client
+ can decrypt.</entry>
+ </row>
+ <row
xml:id="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionKeyStorePassword">
+ <entry> encyrption_key_store_password
</entry>
+ <entry> String </entry>
+ <entry> Key store password. Password
used to open the Message Encryption key store. </entry>
+ </row>
+
</tbody>
</tgroup>
</table>
Copied:
qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Message-Encryption.xml
(from r1722330,
qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Binding-URL.xml)
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Message-Encryption.xml?p2=qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Message-Encryption.xml&p1=qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Binding-URL.xml&r1=1722330&r2=1722418&rev=1722418&view=diff
==============================================================================
--- qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Binding-URL.xml
(original)
+++
qpid/java/trunk/doc/jms-client-0-8/src/docbkx/JMS-Client-Message-Encryption.xml
Thu Dec 31 04:02:11 2015
@@ -20,217 +20,154 @@
-->
-<chapter xmlns="http://docbook.org/ns/docbook" version="5.0"
xml:id="JMS-Client-0-8-Binding-URL">
- <title>Binding URL</title>
+<chapter xmlns="http://docbook.org/ns/docbook" version="5.0"
xml:id="JMS-Client-Message-Encryption">
+ <title>Message Encryption</title>
- <para> The <emphasis>Binding URL</emphasis> syntax for addressing<footnote>
- <para>The client also supports the ADDR format. This is documented in
<link xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:href="${qpidJmsBook}">Programming in Apache Qpid</link>.</para>
- </footnote>. It allows the specification of the bindings between a queue
and an exchange, queue
- and exchange creation arguments and some ancillary options.</para>
-
- <para> The format for a <emphasis>Binding URL</emphasis> is provided below
<screen>
-<Exchange Class>://<Exchange
Name>/[<Destination>]/[<Queue>][?<option>='<value>'[&<option>='<value>']]
- </screen> where <itemizedlist>
- <listitem>
- <para><emphasis>Exchange Class</emphasis>, specifies the type of the
exchange, for example,
-
<emphasis>direct</emphasis>,<emphasis>topic</emphasis>,<emphasis>fanout</emphasis>,
etc.
+ <para>
+ In some cases it is desirable to ensure no-one but the intended
recipient(s) of a message will be able to read
+ its contents. Using SSL/TLS to encrypt traffic travelling between
client and broker only ensures that those
+ snooping the network cannot read messages, however once the message
arrives at the broker it is decrypted and
+ so anyone with access to the broker can read the message. For such
confidential information it is necessary to
+ implement a mechanism of end-to-end encryption such that the sender of
the message encrypts the message before
+ sending, and the recipient(s), upon receiving the message, decrypt it
with some secret known only to them.
+ </para>
+ <para>
+ Neither JMS nor AMQP provide any defined mechanism for message
encryption, however it is possible for any
+ application to build a message encryption scheme on top of a JMS API.
For convenience the Qpid JMS client
+ provides a built in mechanism for encryption and decrypting messages.
This mechanism is currently only
+ implemented in the Qpid JMS client for AMQP 0-8/0-9/0-9-1/0-10. If
you use a different client you will be
+ unable to read encrypted messages.
+ </para>
+
+ <section xml:id="JMS-Client-Message-Encryption-Overview">
+ <title>Overview</title>
+ <para>
+ For each encrypted message which the client sends, a new
message-specific secret key is generated. This
+ secret key is used encrypt the message contents using symmetric
encryption (currently only AES-256 is
+ supported, although other algorithms may be added at a later
date). For each intended recipient of the
+ message, the client encrypts the secret key using the public key
associated with the recipient, and adds
+ this as a message header. On receipt of an encrypted message, the
client looks to see if it has a private
+ key which can decrypt the secret key. If the client is unable to
decrypt the message (for instance, because
+ they were not one of the intended recipients) then the message
will be presented to the application as a
+ BytesMessage containing the encrypted data.
+ </para>
+ <para>
+ In order to send an encrypted message it is necessary to know the
Certificates of the intended recipients.
+ Certificates can be distributed either through out-of-band
mechanisms, or the Qpid Java Broker can be used
+ to distribute them to clients.
+ </para>
+ <para>
+ In order to receive an encrypted message it is necessary to have a
Certificate (which needs to be
+ distributed to those who you wish to send messages to you) and to
have the private key associated with the
+ certificate so that you can decrypt messages sent to you.
</para>
- </listitem>
- <listitem>
- <para><emphasis>Exchange Name</emphasis>, specifies the name of the
exchange, for example,
- <emphasis>amq.direct</emphasis>,<emphasis>amq.topic</emphasis>,
etc. </para>
- </listitem>
- <listitem>
- <para><emphasis>Destination</emphasis>, is an optional part of
<emphasis>Binding
- URL</emphasis>. It can be used to specify a routing key with the
non direct exchanges if
- an option <emphasis>routingkey</emphasis> is not specified. If both
- <emphasis>Destination</emphasis> and option
<emphasis>routingkey</emphasis> are
- specified, then option <emphasis>routingkey</emphasis> has
precedence. </para>
- </listitem>
- <listitem>
- <para><emphasis>Queue</emphasis>, is an optional part of
<emphasis>Binding URL</emphasis> to
- specify a queue name for JMS queue destination. It is ignored in JMS
topic destinations.
- Queue names may consist of any mixture of digits, letters, and
underscores </para>
- </listitem>
- <listitem>
- <para><emphasis>Options</emphasis>, key-value pairs separated by '='
character specifying
- queue and exchange creation arguments, routing key, client
behaviour, etc. </para>
- </listitem>
- </itemizedlist>
- </para>
-
- <important>
- <title>Binding URL option quoting</title>
- <para>Take care with the quoting surrounding option values. Each option
value
- <emphasis>must</emphasis> be surrounded with single quotes ('). </para>
- </important>
-
- <para> The following <emphasis>Binding URL</emphasis> options are currently
defined: <table pgwide="1">
- <title>Binding URL options </title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Option</entry>
- <entry>Type</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><para>durable</para></entry>
- <entry><para>boolean </para></entry>
- <entry><para>Queue durability flag. If it is set to
<emphasis>true</emphasis>, a durable
- queue is requested to create. The durable queue should be
stored on the Broker and
- remained there after Broker restarts until it is explicitly
deleted. This option has
- no meaning for JMS topic destinations, as by nature a topic
destination only exists
- when a subscriber is connected. If durability is required for
topic destinations,
- the durable subscription should be created.</para></entry>
- </row>
- <row>
- <entry><para>exclusive</para></entry>
- <entry><para>boolean </para></entry>
- <entry><para>Queue exclusivity flag. The client cannot use a queue
that was declared as
- exclusive by another still-open connection.</para></entry>
- </row>
- <row>
- <entry><para>autodelete</para></entry>
- <entry><para>boolean </para></entry>
- <entry><para>Queue auto-deletion flag. If it is set to
<emphasis>true</emphasis> on
- queue creation, the queue is deleted if there are no remaining
- subscribers.</para></entry>
- </row>
- <row>
- <entry><para>exchangeautodelete</para></entry>
- <entry><para>boolean </para></entry>
- <entry><para>Exchange auto-deletion flag.</para></entry>
- </row>
- <row>
- <entry><para>exchangedurable</para></entry>
- <entry><para>boolean </para></entry>
- <entry><para>Exchange durability flag. If it is set to
<emphasis>true</emphasis> when
- creating a new exchange, the exchange will be marked as
durable. Durable exchanges
- should remain active after Broker restarts. Non-durable
exchanges are deleted on
- following Broker restart.</para></entry>
- </row>
- <row>
- <entry><para>routingkey</para></entry>
- <entry><para>string </para></entry>
- <entry>
- <para> Defines the value of the binding key to bind a queue to
the exchange. It is
- always required to specify for JMS topic destinations. If
routing key option is not
- set in <emphasis>Binding URL</emphasis> and direct exchange
class is specified, the
- queue name is used as a routing key.
<emphasis>MessagePublisher</emphasis> uses
- routing key to publish messages onto exchange. </para>
- </entry>
- </row>
- <row>
- <entry><para>browse</para></entry>
- <entry><para>boolean </para></entry>
- <entry><para>If set to <emphasis>true</emphasis> on a destination
for a message
- consumer, such consumer can only read messages on the queue
but cannot consume them.
- The consumer behaves like a queue browser in this
case.</para></entry>
- </row>
- <row xml:id="JMS-Client-0-8-Binding-URL-Options-RejectBehaviour">
- <entry><para>rejectbehaviour</para></entry>
- <entry><para>string </para></entry>
- <entry><para>Defines the reject behaviour for the re-delivered
messages. If set to
- 'SERVER' the client delegates the requeue/DLQ decision to the
server. If this option
- is not specified, the messages won't be moved to the DLQ (or
dropped) when delivery
- count exceeds the maximum. </para></entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </para>
-
- <section xml:id="JMS-Client-0-8-Binding-URL-Examples">
- <title>Binding URL Examples</title>
-
- <section xml:id="JMS-Client-0-8-Binding-URL-JMS-Queues" role="h4">
- <title>Binding URLs for declaring of JMS Queues</title>
- <para>The Qpid client Binding URLs for JMS queue destinations can be
declared using direct
- exchange (Mostly it is a pre-defined exchange with a name
"amq.direct". Also, custom direct
- exchanges can be used.): <screen>
-direct://amq.direct//<Queue Name>
- </screen>
- </para>
- <para>The Binding URLs for destinations created with calls to
- <emphasis>Session.createQueue(String)</emphasis> can be expressed as
<screen>
-direct://amq.direct//<Queue Name>?durable='true'
- </screen> The durability flag is set to <emphasis>true</emphasis> in
such destinations. </para>
- <example>
- <title>Binding URL examples for JMS queues</title>
- <screen>
-direct://amq.direct//myNonDurableQueue
-direct://amq.direct//myDurableQueue?durable='true'
-direct://amq.direct//myAnotherQueue?durable='true'&routingkey='myqueue'
-direct://amq.direct//myQueue?durable='true'&routingkey='myqueue'&rejectbehaviour='server'
-direct://custom.direct//yetAnotherQueue
- </screen>
- </example>
</section>
- <section xml:id="JMS-Client-0-8-Binding-URL-JMS-Topics" role="h4">
- <title>Binding URLs for declaring of JMS Topics</title>
- <para>The Binding URLs for JMS queue destinations can be declared using
topic exchange (A
- pre-defined exchange having name "amq.topic" is used mainly. However,
custom topic exchanges
- can be used as well): <screen>
-topic://amq.topic//<Queue name>?routingkey='<Topic
Name>'&exclusive='true'&autodelete='true'
- </screen>
- </para>
- <para>The Binding URLs for a topic destination created with calls to
- <emphasis>Session.createTopic("hello")</emphasis> is provided below:
<example>
- <title>Binding URL examples for JMS topics</title>
- <screen>
-topic://amq.topic/hello/tmp_127_0_0_1_36973_1?routingkey='hello'&exclusive='true'&autodelete='true'
- </screen>
- </example>
- </para>
+ <section xml:id="JMS-Client-Message-Encryption-Sending">
+ <title>Sending an Encrypted Message</title>
+ <section
xml:id="JMS-Client-Message-Encryption-Sending-Setting-TrustStore">
+ <title>Providing the Trust Store</title>
+ <para>
+ In order for a connection to be capable of sending encrypted
messages, it must be provided with a trust
+ store which contains the X509 certificates of the entities to
which you wish to send. The details of the
+ trust store are supplied in the <link
linkend="JMS-Client-0-8-Connection-URL">connection URL</link>.
+ </para>
+ <para>
+ There are two distinct mechanisms for providing the encryption
trist store. Firstly you can supply a
+ standard password-protected tust store file on the file
system. The location and password for this must
+ be specified using the <link
linkend="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionTrustStore">
+ encryption_trust_store</link> and
+ <link
linkend="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionTrustStorePassword">encryption_trust_store_password
+ </link> options respectively. Such a connection URL might look
somthing like:
+ </para>
+
<programlisting>amqp://username:password@clientid/test?brokerlist='tcp://localhost:5672?encryption_trust_store='/home/qpid/certificates.jks'&encryption_trust_store_password='password''</programlisting>
+ <para>
+ Alternatively, where available, you can configure the broker
to distribute certificates from a trust
+ store (this is currently only available in the Java Broker).
In order to use this method, the broker
+ details in the connection url must contain the correctly
configured
+ <link
linkend="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionRemoreTrustStore">encryption_remote_trust_store</link>
+ option. Such a connection URL might look somthing like:
+ </para>
+
<programlisting>amqp://username:password@clientid/test?brokerlist='tcp://localhost:5672?encryption_remote_trust_store='$certificates%5c/certstore''</programlisting>
+
+ </section>
+ <section
xml:id="JMS-Client-Message-Encryption-Sending-Enabling-Encryption">
+ <title>Enabling Encryption</title>
+ <para>
+ Message encryption can be enabled individually on each sent
message, or - using configuration - all
+ messages sent to a Destination can be encrypted.
+ </para>
+ <para>
+ In order to encrypt messages on a case by case basis, the
appliation must set the boolean property
+ <literal>x-qpid-encrypt</literal> to true on the message
before sending. The intended recipients of the
+ message must also be set (see
+ <link
linkend="JMS-Client-Message-Encryption-Sending-Choosing-Recipients">Choosing
Recipients</link>).
+ </para>
+ <programlisting>message.setBooleanProperty("x-qpid-encrypt",
true);</programlisting>
+ <para>
+ In order to encrypt all messages sent to a given Destination,
the option
+ <link
linkend="JMS-Client-0-8-Binding-URL-Options-SendEncrypted">sendencrypted</link>
can be used. Note
+ that enabling encryption on the address can be overridden by
explicitly seting the property
+ <literal>x-qpid-encrypt</literal> to false on an individual
message. An example address would look like:
+ </para>
+
<programlisting>direct:///queue/queue?sendencrypted='true'</programlisting>
+ </section>
+ <section
xml:id="JMS-Client-Message-Encryption-Sending-Choosing-Recipients">
+ <title>Choosing Recipients</title>
+ <para>
+ Any message which is to be sent encrypted must also have a
list of recipients who the sender wishes to
+ be able to decrypt the message. The recipients must be encoded
as a semi-colon separated list of the
+ names given in the respective certificates of the recipients,
e.g.
+
<literal>[email protected],ou=example,o=example,l=ny,st=ny,c=us;[email protected],ou=example,o=example,l=ny,st=ny,c=us</literal>.
+ </para>
+ <para>
+ As with enabling encryption, the recipients can be set either
on a per-message basis or for all messages
+ sent to a given address. If both forms are used, the former
overrides the latter. To set on an individual
+ message, set the String property
<literal>x-qpid-encrypt-recipients</literal>.
+ </para>
+
<programlisting>message.setStringProperty("x-qpid-encrypt-recipients",
"[email protected],ou=example,o=example");</programlisting>
+ <para>
+ To set the recipients on an address, use the address option
+ <link
linkend="JMS-Client-0-8-Binding-URL-Options-EncryptedRecipients">encryptedrecipients</link>.
+ </para>
+
<programlisting>direct:///queue/queue?sendencrypted='true'&encryptedrecipients='[email protected],ou=example,o=example'</programlisting>
+
+ </section>
+ <section
xml:id="JMS-Client-Message-Encryption-Sending-Exposing-Properties">
+ <title>Exposing Properties</title>
+ <para>
+ Message Encryption encrypts the message content and the
properties set by the application. Sometimes
+ it is important to expose properties to allow (for example)
message routing or message selectors within
+ the broker to work. To enable this it is possible to specify
for each message all the properties which
+ the application wishes to make available to the broker. Note
that exposing properties in this way means
+ that they are now visibe to anyone who can inspect the broker
memory or file system stores.
+ </para>
+ <para>
+ To make message properties visible to the broker, set the
String property
+ <literal>x-qpid-unencrypted-properties</literal> with a
semi-colon separated list of the names of the
+ properties to be exposed.
+ </para>
+
<programlisting>message.setStringProperty("x-qpid-unencrypted-properties",
"foo;bar;baz");</programlisting>
+ </section>
</section>
+ <section xml:id="JMS-Client-Message-Encryption-Receiving">
+ <title>Receiving an Encrypted Message</title>
+ <section
xml:id="JMS-Client-Message-Encryption-Sending-Setting-KeyStore">
+ <title>Providing the Key Store</title>
+ <para>
+ In order for a connection to be capable of decrypting received
encrypted messages, it must be provided
+ with a key store which contains the X509 certificates and
associated Private Keys of the identities
+ on behalf of which it will be able to decrypt. The details of
the
+ key store are supplied in the <link
linkend="JMS-Client-0-8-Connection-URL">connection URL</link>.
+ The location and password for this must
+ be specified using the <link
linkend="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionKeyStore">
+ encryption_key_store</link> and
+ <link
linkend="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionKeyStorePassword">encryption_trust_store_password
+ </link> options respectively. Such a connection URL might look
somthing like:
+ </para>
+
<programlisting>amqp://username:password@clientid/test?brokerlist='tcp://localhost:5672?encryption_key_store='/home/qpid/identities.jks'&encryption_key_store_password='password''</programlisting>
- <section xml:id="JMS-Client-0-8-Binding-URL-Topics-Wildcards" role="h4">
- <title>Wildcard characters in routing keys for topic destinations</title>
- <para> AMQP exchanges of class <emphasis>topic</emphasis> can route
messages to the queues
- using special matches containing wildcard characters (a "#" matches
one or more words, a "*"
- matches a single word). The routing keys words are separated with a
"." delimiter to
- distinguish words for matching. Thus, if a consumer application
specifies a routing key in
- the destination like "usa.#", it should receive all the messages
matching to that routing
- key. For example, "usa.boston", "usa.new-york", etc. </para>
- <para> The examples of the <emphasis>Binding URLs</emphasis> having
routing keys with
- wildcards characters are provided below: <screen>
-topic://amq.topic?routingkey='stocks.#'
-topic://amq.topic?routingkey='stocks.*.ibm'
-topic://amq.topic?routingkey='stocks.nyse.ibm'
- </screen>
- </para>
- </section>
- <section xml:id="JMS-Client-0-8-Binding-URL-Extra-Examples" role="h4">
- <title>More Examples</title>
- <table>
- <title>Binding URL examples</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Binding URL</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><para>fanout://amq.fanout//myQueue</para></entry>
- <entry><para>Binding URL binding queue "myQueue" to predefined
"amq.fanout" exchange
- of class "fanout"</para></entry>
- </row>
- <row>
-
<entry><para>topic://custom.topic//anotherQueue?routingkey='aq'</para></entry>
- <entry><para>Binding URL binding queue "anotherQueue" to the
exchange with name
- "custom.topic" of class "topic" using binding key
"aq".</para></entry>
- </row>
- </tbody>
- </tgroup>
- </table>
+ </section>
</section>
- </section>
-
</chapter>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]