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>
-&lt;Exchange Class&gt;://&lt;Exchange 
Name&gt;/[&lt;Destination&gt;]/[&lt;Queue&gt;][?&lt;option&gt;='&lt;value&gt;'[&amp;&lt;option&gt;='&lt;value&gt;']]
-    </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//&lt;Queue Name&gt;
-         </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//&lt;Queue Name&gt;?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'&amp;routingkey='myqueue'
-direct://amq.direct//myQueue?durable='true'&amp;routingkey='myqueue'&amp;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//&lt;Queue name&gt;?routingkey='&lt;Topic 
Name&gt;'&amp;exclusive='true'&amp;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'&amp;exclusive='true'&amp;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'&amp;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'&amp;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'&amp;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]

Reply via email to