Modified: 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-ACLs.xml
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-ACLs.xml?rev=1480684&r1=1480683&r2=1480684&view=diff
==============================================================================
--- 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-ACLs.xml 
(original)
+++ 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-ACLs.xml 
Thu May  9 15:17:33 2013
@@ -25,53 +25,45 @@
   <title>Access Control Lists</title>
   <para>
     In Qpid, Access Control Lists (ACLs) specify which actions can be 
performed by each authenticated user.
-    To enable, the &lt;acl/&gt; element is used within the &lt;security/&gt; 
element of the configuration XML.
-    In the Java Broker, the ACL may be imposed broker wide or applied to 
individual virtual
-    hosts.  The  &lt;acl/&gt; configuration references a text file containing 
the ACL rules.
+    To enable, an <emphasis>Access Control Provider</emphasis> needs to be 
configured on the <emphasis>Broker</emphasis>
+    level or/and ACL configuration should be provided on a <emphasis>Virtual 
Host</emphasis> level.
+    The first imposes the ACL broker wide, and the second is applied to 
individual virtual hosts.
+    The <emphasis>Access Control Provider</emphasis> of type "AclFile" uses 
local file to specify the ACL rules.
     By convention, this file should have a .acl extension.
   </para>
 
+  <para>
+    A Group Provider can be configured with ACL to define the user groups 
which can be used in ACL
+    to determine the ACL rules applicable to the entire group. The 
configuration details for the Group Providers are described in
+    <xref linkend="Java-Broker-Security-Group-Providers"/>. On creation of ACL 
Provider with group rules,
+    the Group Provider should be added first. Otherwise, if the individual ACL 
rules are not defined for the logged principal
+    the following invocation of management operations could be denied due to 
absence of the required groups.</para>
+
+  <para>Only one <emphasis>Access Control Provider</emphasis> can be used by 
the Broker.
+    If several <emphasis>Access Control Providers</emphasis> are configured on 
Broker level
+    only one of them will be used (the latest one). <xref 
linkend="Java-Broker-Virtual-Hosts-Configuration-File-ACL"/>
+    shows how to configure ACL on <emphasis>Virtual Host</emphasis> using 
virtual host configuration xml.
+    If both Broker <emphasis>Access Control Provider</emphasis> and 
<emphasis>Virtual Host</emphasis> ACL are configured,
+    the <emphasis>Virtual Host</emphasis> ACL is used for authorization of 
operations on <emphasis>Virtual Host</emphasis> and
+    Virtual Host objects and Broker level ACL is used to authorization of 
operations on Broker and Broker children
+    (excluding Virtual Hosts having ACL configured).
+  </para>
 
-  <section role="h3" id="Java-Broker-Security-ACLs-EnablingACL">
-    <title>
-       Enabling ACLs
-    </title>
-
-    <para>
-      To apply an ACL broker-wide, add the following to the config.xml 
(assuming that <replaceable>conf</replaceable> has been set to a suitable
-      location such as ${QPID_HOME}/etc):
-    </para>
-
-    <programlisting>
-      &lt;broker&gt;
-        ...
-        &lt;security&gt;
-          ...
-          &lt;acl&gt;<replaceable>${conf}/broker.acl</replaceable>&lt;/acl&gt;
-        &lt;/security&gt;
-      &lt;/broker&gt;
-    </programlisting>
-
-    <para>
-    </para>
-
-    <para>
-      To apply an ACL on a single virtualhost named 
<replaceable>test</replaceable>, add the following to the config.xml:
-    </para>
+ <para>
+    The ACL Providers can be configured using <link 
linkend="Java-Broker-Configuring-And-Managing-REST-API">REST Management 
interfaces</link>
+    and <link linkend="Java-Broker-Configuring-And-Managing-Web-Console">Web 
Management Console</link>.
+  </para>
 
-    <programlisting>
-      &lt;virtualhost&gt;
-        ...
-        &lt;name&gt;test&lt;/name&gt;
-        &lt;test&gt;
-          ...
-          &lt;security&gt;
-            
&lt;acl&gt;<replaceable>${conf}/vhost_test.acl</replaceable>&lt;/acl&gt;
-          &lt;/security&gt;
-        &lt;/test&gt;
-      &lt;/virtualhost&gt;
-    </programlisting>
-  </section>
+  <para>The following ACL Provider managing operations are available from Web 
Management Console:
+    <itemizedlist>
+        <listitem><para>A new ACL Provider can be added by clicking onto "Add 
Access Control Provider" on the Broker tab.</para></listitem>
+        <listitem><para>An ACL Provider details can be viewed on the Access 
Control Provider tab.
+        The tab is shown after clicking onto ACL Provider name in the Broker 
object tree or after clicking
+        onto ACL Provider row in ACL Providers grid on the Broker 
tab.</para></listitem>
+        <listitem><para>An existing ACL Provider can be deleted by clicking 
onto buttons "Delete Access Control Provider"
+        on the Broker tab or Access Control Provider tab.</para></listitem>
+    </itemizedlist>
+  </para>
 
   <section role="h3" id="Java-Broker-Security-ACLs-WriteACL">
     <title>
@@ -209,6 +201,10 @@
           <entry> <command>UPDATE</command> </entry>
           <entry> <para> Applied when an object is updated </para> </entry>
         </row>
+        <row>
+          <entry> <command>CONFIGURE</command> </entry>
+          <entry> <para> Applied when an object is configured via REST 
management interfaces(Java Broker only).</para> </entry>
+        </row>
       </tbody>
     </tgroup>
   </table>
@@ -250,7 +246,7 @@
         </row>
         <row>
           <entry> <command>BROKER</command> </entry>
-          <entry> <para>The broker (not currently used in Java Broker)</para> 
</entry>
+          <entry> <para>The broker</para> </entry>
         </row>
       </tbody>
     </tgroup>
@@ -532,5 +528,51 @@ ACL DENY-LOG messaging-users ACCESS VIRT
 ACL DENY-LOG all all
       </programlisting>
     </section>
+        <section role="h4" id="Java-Broker-Security-ACLs-WorkedExample5">
+      <title>
+        Worked example 5 - REST management ACL example
+      </title>
+      <para>
+        This example illustrates how to set up an ACL that restricts usage of 
REST management interfaces.
+      </para>
+      <programlisting>
+# allow to the users from webadmins group to change broker model
+# this rule allows adding/removing/editing of Broker level objects:
+# Broker, Virtual Host, Group Provider, Authentication Provider, Port, Access 
Control Provider etc
+ACL ALLOW-LOG webadmins CONFIGURE BROKER
+
+# allow to the users from webadmins group to perform
+# create/update/delete on Virtual Host children
+ACL ALLOW-LOG webadmins CREATE QUEUE
+ACL ALLOW-LOG webadmins UPDATE QUEUE
+ACL ALLOW-LOG webadmins DELETE QUEUE
+ACL ALLOW-LOG webadmins PURGE  QUEUE
+ACL ALLOW-LOG webadmins CREATE EXCHANGE
+ACL ALLOW-LOG webadmins DELETE EXCHANGE
+ACL ALLOW-LOG webadmins BIND   EXCHANGE
+ACL ALLOW-LOG webadmins UNBIND EXCHANGE
+
+# allow to the users from webadmins group to create/update/delete groups on 
Group Providers
+ACL ALLOW-LOG webadmins CREATE GROUP
+ACL ALLOW-LOG webadmins DELETE GROUP
+ACL ALLOW-LOG webadmins UPDATE GROUP
+
+# allow to the users from webadmins group to create/update/delete users for 
Authentication Providers
+ACL ALLOW-LOG webadmins CREATE USER
+ACL ALLOW-LOG webadmins DELETE USER
+ACL ALLOW-LOG webadmins UPDATE USER
+
+# allow to the users from webadmins group to move, copy and delete messagaes
+# using REST management interfaces
+ACL ALLOW-LOG webadmins UPDATE METHOD
+
+# at the moment only the following UPDATE METHOD rules are supported by web 
management console
+#ACL ALLOW-LOG webadmins UPDATE METHOD component="VirtualHost.Queue" 
name="moveMessages"
+#ACL ALLOW-LOG webadmins UPDATE METHOD component="VirtualHost.Queue" 
name="copyMessages"
+#ACL ALLOW-LOG webadmins UPDATE METHOD component="VirtualHost.Queue" 
name="deleteMessages"
+
+ACL DENY-LOG all all
+      </programlisting>
+    </section>
   </section>
 </section>

Modified: 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-Authentication-Providers.xml
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-Authentication-Providers.xml?rev=1480684&r1=1480683&r2=1480684&view=diff
==============================================================================
--- 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-Authentication-Providers.xml
 (original)
+++ 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-Authentication-Providers.xml
 Thu May  9 15:17:33 2013
@@ -26,135 +26,102 @@
   <para>
     In order to successfully establish a connection to the Java Broker, the 
connection must be
     authenticated. The Java Broker supports a number of different 
authentication schemes, each
-    with its own "authentication manager". Each of these are outlined below, 
along with details
-    of <link linkend="MultipleAuthProviders"> using more than one at a 
time</link>.
+    with its own "authentication provider". Any number of Authentication 
Providers can be configured
+    on the Broker at the same time.
   </para>
 
-  <section>
-    <title>Password File</title>
-    <para>
-      TODO
-    </para>
-
-  </section>
-
-  <section id="LDAPAuthManager">
-  <title>LDAP</title>
-
   <para>
-    LDAP authentication can be configured using the 
&lt;simple-ldap-auth-manager&gt; element
-    within the &lt;security&gt; section. An example of how to configure this 
is shown below.
-    Please note this example also configures an unused &lt;pd-auth-manager&gt; 
to use an empty
-    password file, this is a workaround for an issue relating to registration 
of security providers.
+    The Authentication Providers can be configured using <link 
linkend="Java-Broker-Configuring-And-Managing-REST-API">REST Management 
interfaces</link>
+             and <link 
linkend="Java-Broker-Configuring-And-Managing-Web-Console">Web Management 
Console</link>.
+  </para>
+
+  <para>The following Authentication Provider managing operations are 
available from Web Management Console:
+    <itemizedlist>
+        <listitem><para>A new Authentication Provider can be added by clicking 
onto "Add Provider" on the Broker tab.</para></listitem>
+        <listitem><para>An Authentication Provider details can be viewed on 
the Authentication Provider tab.
+        The tab is displayed after clicking onto Authentication Provider name 
in the Broker object tree or after clicking
+        onto Authentication Provider row in Authentication Providers grid on 
the Broker tab.</para></listitem>
+        <listitem><para>Editing of Authentication Provider can be performed by 
clicking on "Edit" button
+        on Authentication Provider tab.</para></listitem>
+        <listitem><para>An existing  Authentication Provider can be deleted by 
clicking on "Delete Provider" button
+        on Broker tab or "Delete" button on the Authentication Provider 
tab.</para></listitem>
+    </itemizedlist>
+    The Authentication Provider type and name cannot be changed for existing 
providers as editing of name and type
+    is unsupported at the moment. Only provider specific attributes can be 
modified in the editing dialog
+    and stored in the broker configuration store.
+  </para>
+
+  <important>
+  Only unused Authentication Provider can be deleted. For delete requests 
attempting to delete Authentication Provider
+  associated with the Ports, the errors will be returned and delete operations 
will be aborted. It is possible to change
+  the Authentication Provider on Port at runtime. However, the Broker restart 
is required for changes on Port to take effect.
+  </important>
+
+  <section id="Java-Broker-Security-LDAP-Provider">
+  <title>Simple LDAP Authentication Provider</title>
+
+  <para>
+    SimpleLDAPAuthenticationProvider authenticate the connections by searching 
for a user unique distinguished name
+    in the pre-configured LDAP search directory and performing LDAP bind using 
the found DN and password after that.
+    On creation of SimpleLDAPAuthenticationProvider the following mandatory 
fields are required to specify:
+    <itemizedlist>
+            <listitem><para><emphasis>LDAP server URL</emphasis> is an URL of 
LDAP server, for example, ldaps://example.com:636</para></listitem>
+            <listitem><para><emphasis>Search context</emphasis> is a LDAP 
directory name to search for users entries, for example, 
"dc=users,dc=example,dc=com"</para></listitem>
+            <listitem><para><emphasis>Search filter</emphasis> is a DN 
template to find an LDAP user entry by provided user name, for example, 
(uid={0})</para></listitem>
+    </itemizedlist>
+    Additionally, the following optional fields can be specified:
+    <itemizedlist>
+            <listitem><para><emphasis>LDAP context factory</emphasis> is fully 
qualified class name for the JNDI LDAP context factory.</para></listitem>
+            <listitem><para><emphasis>LDAP authentication URL</emphasis>is an 
URL of LDAP server for performing "ldap bind"
+            if a different LDAP URL is required for performing an 
authentication.</para></listitem>
+    </itemizedlist>
   </para>
 
   <para>
     <emphasis>NOTE: When using LDAP authentication, you must also use SSL on 
the brokers AMQP messaging and
     JMX/HTTP management ports in order to protect passwords during 
transmission to the broker.</emphasis>
   </para>
-  <example>
-    <title>Configuring LDAP authentication</title>
-    <programlisting><![CDATA[
-<security>
-  <default-auth-manager>SimpleLDAPAuthenticationManager</default-auth-manager>
-  <simple-ldap-auth-manager>
-    <provider-url>ldaps://example.com:636/</provider-url>
-    <search-context>dc=example\,dc=com</search-context>
-    <search-filter>(uid={0})</search-filter>
-  </simple-ldap-auth-manager>
-
-  <!-- Unused pd-auth-manager, a workaround to register the necessary security 
providers -->
-  <pd-auth-manager>
-    <principal-database>
-      
<class>org.apache.qpid.server.security.auth.database.PlainPasswordFilePrincipalDatabase</class>
-      <attributes>
-        <attribute>
-          <name>passwordFile</name>
-          <value>${conf}/emptyPasswdFile</value>
-        </attribute>
-      </attributes>
-    </principal-database>
-  <pd-auth-manager>
-  ...
-</security>]]></programlisting>
-  </example>
 
   <para>
-    The authentication manager first connects to the ldap server anonymously 
and searches for the
+    The Authentication Provider first connects to the ldap server anonymously 
and searches for the
     ldap entity which is identified by the username provided over SASL. 
Essentially the
-    authentication manager calls
-    DirContext.search(Name name, String filterExpr, Object[] filterArgs, 
SearchControls cons)
-    with the values of search-context and search-filter as the first two 
arguments, and the username
-    as the only element in the array which is the third argument.
+    authentication manager calls DirContext.search(Name name, String 
filterExpr, Object[] filterArgs, SearchControls cons)
+    with the values of <emphasis>Search context</emphasis> and 
<emphasis>Search filter</emphasis> as the first two arguments,
+    and the username as the only element in the array which is the third 
argument.
   </para>
 
   <para>
-    If the search returns a name from the LDAP server, the 
AuthenticationManager then attempts to
-    login to the ldap server with the given name and the password.
+    If the search returns a name from the LDAP server, the Authentication 
Provider then attempts to
+    login to the LDAP server with the given name and the password.
   </para>
 
   <para>
     If the URL to open for authentication is different to that for the search, 
then the
-    authentication url can be overridden using &lt;provider-auth-url&gt; in 
addition to providing a
-    &lt;provider-url&gt;. Note that the URL used for authentication should use 
ldaps:// since
+    authentication url can be overridden using &lt;LDAP authentication URL&gt; 
in addition to providing a
+    &lt;LDAP server URL&gt;. Note that the URL used for authentication should 
use ldaps:// since
     passwords will be being sent over it.
   </para>
 
   <para>
     By default com.sun.jndi.ldap.LdapCtxFactory is used to create the context, 
however this can be
-    overridden by specifying &lt;ldap-context-factory&gt; in the configuration.
+    overridden by specifying &lt;LDAP context factory&gt; in the configuration.
   </para>
   </section>
 
-  <section>
+  <section id="Java-Broker-Security-Kerberos-Provider">
   <title>Kerberos</title>
 
   <para>
-    Kereberos Authentication is configured using the 
&lt;kerberos-auth-manager&gt; element within
-    the &lt;security&gt; section. When referencing from the 
default-auth-manager or port-mapping
-    sections, its name is KerberosAuthenticationManager.
+    Kereberos Authentication Provider uses java GSS-API SASL mechanism to 
authenticate the connections.
   </para>
 
   <para>
-    Since Kerberos support only works where SASL authentication is available 
(e.g. not for JMX
-    authentication) you may wish to also include an alternative Authentication 
Manager
-    configuration, and use this for other ports:
-  </para>
-
-  <example>
-    <title>Configuring Kerberos authentication</title>
-    <programlisting><![CDATA[
-<security>
-  <pd-auth-manager>
-    <principal-database>
-      
<class>org.apache.qpid.server.security.auth.database.PlainPasswordFilePrincipalDatabase</class>
-      <attributes>
-        <attribute>
-          <name>passwordFile</name>
-          <value>${conf}/passwd</value>
-        </attribute>
-      </attributes>
-    </principal-database>
-  </pd-auth-manager>
-  <kerberos-auth-manager/>
-  
<default-auth-manager>PrincipalDatabaseAuthenticationManager</default-auth-manager>
-  <port-mappings>
-    <port-mapping>
-      <port>5672</port>
-      <auth-manager>KerberosAuthenticationManager</auth-manager>
-    </port-mapping>
-  </port-mappings>
-  ...
-</security>]]></programlisting>
-  </example>
-
-  <para>
     Configuration of kerberos is done through system properties (there doesn't 
seem to be a way
     around this unfortunately).
   </para>
 
   <programlisting>
-    export QPID_OPTS=-Djavax.security.auth.useSubjectCredsOnly=false 
-Djava.security.auth.login.config=qpid.conf
+    export JAVA_OPTS=-Djavax.security.auth.useSubjectCredsOnly=false 
-Djava.security.auth.login.config=qpid.conf
     ${QPID_HOME}/bin/qpid-server
   </programlisting>
 
@@ -183,138 +150,99 @@ com.sun.security.jgss.accept {
     Note: You may need to install the "Java Cryptography Extension (JCE) 
Unlimited Strength
     Jurisdiction Policy Files" appropriate for your JDK in order to get 
Kerberos support working.
   </para>
+
+  <para>
+    Since Kerberos support only works where SASL authentication is available 
(e.g. not for JMX
+    authentication) you may wish to also include an alternative Authentication 
Provider
+    configuration, and use this for JMX and HTTP ports.
+  </para>
+
   </section>
 
-  <section id="ExternalAuthManager">
+  <section id="Java-Broker-Security-External-Provider">
     <title>External (SSL Client Certificates)</title>
 
     <para>
       When <link linkend="SSL-Truststore-ClientCertificate"> requiring SSL 
Client Certificates</link> be
-      presented the ExternalAuthenticationManager can be used, such that the 
user is authenticated based on
+      presented the External Authentication Provider can be used, such that 
the user is authenticated based on
       trust of their certificate alone, and the X500Principal from the SSL 
session is then used as the username
       for the connection, instead of also requiring the user to present a 
valid username and password.
     </para>
 
     <para>
-      The ExternalAuthenticationManager may be enabled by adding an empty 
&lt;external-auth-manager&gt; element to
-      the &lt;security&gt; section, as shown below. When referencing it from 
the default-auth-manager or port-mapping
-      sections, its name is ExternalAuthenticationManager.
-    </para>
-
-    <para>
-      <emphasis role="bold">Note:</emphasis> The ExternalAuthenticationManager 
should typically only be used on the
+      <emphasis role="bold">Note:</emphasis> The External Authentication 
Provider should typically only be used on the
       AMQP ports, in conjunction with <link 
linkend="SSL-Truststore-ClientCertificate">SSL client certificate
       authentication</link>. It is not intended for other uses such as the JMX 
management port and will treat any
-      non-sasl authentication processes on these ports as successfull with the 
given username. As such you should
-      <link linkend="MultipleAuthProviders">include another Authentication 
Manager for use on non-AMQP ports</link>,
-      as is done in the example below. Perhaps the only exception to this 
would be where the broker is embedded in a
-      container that is itself externally protecting the HTTP interface and 
then providing the remote users name.
+      non-sasl authentication processes on these ports as successful with the 
given username. As such you should
+      configure another Authentication Provider for use on non-AMQP ports. 
Perhaps the only exception to this
+      would be where the broker is embedded in a container that is itself 
externally protecting the HTTP interface
+      and then providing the remote users name.
     </para>
 
-    <example>
-      <title>Configuring external authentication (SSL client auth)</title>
-      <programlisting><![CDATA[
-<security>
-  <pd-auth-manager>
-    <principal-database>
-      
<class>org.apache.qpid.server.security.auth.database.PlainPasswordFilePrincipalDatabase</class>
-      <attributes>
-        <attribute>
-          <name>passwordFile</name>
-          <value>${conf}/passwd</value>
-        </attribute>
-      </attributes>
-    </principal-database>
-  </pd-auth-manager>
-  <external-auth-manager/>
-  
<default-auth-manager>PrincipalDatabaseAuthenticationManager</default-auth-manager>
-  <port-mappings>
-    <port-mapping>
-      <port>5672</port>
-      <auth-manager>ExternalAuthenticationManager</auth-manager>
-    </port-mapping>
-  </port-mappings>
-  ...
-</security>]]></programlisting>
-    </example>
-
+    <para>On creation of External Provider the use of full DN or username CN 
as a principal name can be configured.
+    If field "Use the full DN as the Username" is set to "true" the full DN is 
used as an authenticated principal name.
+    If field "Use the full DN as the Username" is set to "false" the user name 
CN part is used as the authenticated principal name.
+    Setting the field to "false" is particular useful when <link 
linkend="Java-Broker-Security-ACLs">ACL</link> is required,
+    as at the moment, ACL does not support commas in the user name.
+    </para>
   </section>
 
-  <section id="AnonymousAuthManager">
+  <section id="Java-Broker-Security-Anonymous-Provider">
     <title>Anonymous</title>
 
     <para>
-      The AnonymousAuthenticationManager will allow users to connect with or 
without credentials and result
-      in their identification on the broker as the user ANONYMOUS. It may be 
enabled by adding an empty
-      anonymous-auth-manager element to the security configuration section, as 
shown below.
+      The Anonymous Authentication Provider will allow users to connect with 
or without credentials and result
+      in their identification on the broker as the user ANONYMOUS. This 
Provider does not require specification
+      of any additional fields on creation.
     </para>
 
-    <example>
-      <title>Configuring anonymous authentication</title>
-
-      <programlisting><![CDATA[
-<security>
-  <anonymous-auth-manager/>
-  ...
-</security>]]></programlisting>
-    </example>
+  </section>
 
+  <section id="Java-Broker-Security-PlainPasswordFile-Provider">
+    <title>Plain Password File</title>
+    <para>
+      The PlainPasswordFile Provider uses local file to store and manage user 
credentials.
+      When creating an authentication provider the path to the file needs to 
be specified.
+      If specified file does not exist an empty file is created automatically 
on Authentication Provider creation.
+      On  Provider deletion the password file is deleted as well. For this 
Provider
+      user credentials can be added, removed or changed using REST management 
interfaces and web management console.
+    </para>
     <para>
-      When referencing it from the default-auth-manager or port-mapping 
sections, its name is
-      AnonymousAuthenticationManager.
+    On navigating to the Plain Password File Provider tab (by clicking onto 
provider name from Broker tree or provider
+    row in providers grid on Broker tab) the list of existing credentials is 
displayed on the tab with the buttons "Add User"
+    and "Delete Users" to add new user credentials and delete the existing 
user credentials respectively.
+    On clicking into user name on Users grid the pop-up dialog to change the 
password is displayed.
     </para>
+
+    <section>
+        <title>Plain Password File Format</title>
+        <para>
+            The user credentials are stored on the single file line as user 
name and user password pairs separated by colon character.
+        </para>
+        <programlisting>
+# password file format
+# &lt;user name&gt;: &lt;user password&gt;
+guest:guest
+        </programlisting>
+     </section>
   </section>
 
-  <section id="MultipleAuthProviders">
-    <title>Configuring multiple Authentication Providers</title>
+  <section id="Java-Broker-Security-Base64MD5PasswordFile-Provider">
+    <title>Base64MD5 Password File</title>
     <para>
-      Different managers may be used on different ports. Each manager has its 
own configuration element,
-      the presence of which within the &lt;security&gt; section denotes the 
use of that authentication
-      provider. Where only one such manager is configured, it will be used on 
all ports (including JMX
-      and HTTP). Where more than one authentication manager is configured the 
configuration must define
-      which is the "default", and (if required) the mapping of non-default 
authentication managers to
-      other ports.
+      Base64MD5PasswordFile Provider uses local file to store and manage user 
credentials similar to Similar to PlainPasswordFile
+      but instead of storing a password the MD5 password digest encoded with 
Base64 encoding is stored in the file.
+      When creating an authentication provider the path to the file needs to 
be specified.
+      If specified file does not exist an empty file is created automatically 
on Authentication Provider creation.
+      On Base64MD5PasswordFile Provider deletion the password file is deleted 
as well. For this Provider
+      user credentials can be added, removed or changed using REST management 
interfaces and web management console.
     </para>
     <para>
-      The following configuration sets up three authentication managers, using 
a password file as the
-      default (e.g. for the JMX and HTTP ports), Kerberos on port 5672 (the 
regular AMQP port) and Anonymous
-      on port 5673 (e.g a second AMQP port the broker could have been 
configured with).
+    On navigating to the Base64MD5PasswordFile Provider tab (by clicking onto 
provider name from Broker tree or provider
+    row in providers grid on Broker tab) the list of existing credentials is 
displayed on the tab with the buttons "Add User"
+    and "Delete Users" to add new user credentials and delete the existing 
user credentials respectively.
+    On clicking into user name on Users grid the pop-up dialog to change the 
password is displayed.
     </para>
-
-    <example>
-      <title>Configuring multiple (per-port) authentication schemes</title>
-      <programlisting><![CDATA[
-<security>
-  <pd-auth-manager>
-    <principal-database>
-      
<class>org.apache.qpid.server.security.auth.database.PlainPasswordFilePrincipalDatabase</class>
-      <attributes>
-        <attribute>
-          <name>passwordFile</name>
-          <value>${conf}/passwd</value>
-        </attribute>
-      </attributes>
-    </principal-database>
-  </pd-auth-manager>
-  <kerberos-auth-manager>
-    <auth-name>sib</auth-name>
-  </kerberos-auth-manager>
-  <anonymous-auth-manager/>
-  
<default-auth-manager>PrincipalDatabaseAuthenticationManager</default-auth-manager>
-  <port-mappings>
-    <port-mapping>
-      <port>5672</port>
-        <auth-manager>KerberosAuthenticationManager</auth-manager>
-      </port-mapping>
-    <port-mapping>
-      <port>5673</port>
-        <auth-manager>AnonymousAuthenticationManager</auth-manager>
-    </port-mapping>
-  </port-mappings>
-  ...
-</security>]]></programlisting>
-    </example>
   </section>
-
 </section>
 

Modified: 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-Group-Providers.xml
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-Group-Providers.xml?rev=1480684&r1=1480683&r2=1480684&view=diff
==============================================================================
--- 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-Group-Providers.xml
 (original)
+++ 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-Group-Providers.xml
 Thu May  9 15:17:33 2013
@@ -22,39 +22,45 @@
 -->
 
 <section id="Java-Broker-Security-Group-Providers">
-  <title>Configuring Group Providers</title>
+  <title>Group Providers</title>
   <para>
-    The Java broker utilises GroupProviders to allow assigning users to groups 
for use in <link linkend="Java-Broker-Security-ACLs">ACLs</link>. Following 
authentication by a given <link 
linkend="Java-Broker-Security-Authentication-Providers">Authentication 
Provider</link>, the configured Group Providers are consulted to allowing 
assignment of GroupPrincipals for a given authenticated user.
+    The Java broker utilises GroupProviders to allow assigning users to groups 
for use in <link linkend="Java-Broker-Security-ACLs">ACLs</link>.
+    Following authentication by a given <link 
linkend="Java-Broker-Security-Authentication-Providers">Authentication 
Provider</link>,
+    the configured Group Providers are consulted allowing the assignment of 
GroupPrincipals for a given authenticated user. Any number of
+    Group Providers can be added into the Broker. All of them will be checked 
for the presence of the groups for a given authenticated user.
   </para>
-
+  <para>The <emphasis>Group Provider</emphasis> can be configured using <link 
linkend="Java-Broker-Configuring-And-Managing-REST-API">
+  REST Management interfaces</link> and <link 
linkend="Java-Broker-Configuring-And-Managing-Web-Console">Web Management 
Console</link>.</para>
+  <para>The following <emphasis>Group Provider</emphasis> managing operations 
are available from Web Management Console:
+    <itemizedlist>
+        <listitem><para>A new Group Provider can be added by clicking onto 
"Add Group Provider" button on a Broker tab.</para></listitem>
+        <listitem><para>An existing providers can be removed by pressing 
"Delete Group Provider" button
+         on Broker tab or Group Provider tab.</para></listitem>
+        <listitem><para>On clicking onto provider name in the Group Providers 
grid or Broker object tree,
+         the tab for the Group Provider is displayed.</para></listitem>
+        <listitem><para>A new group can be added into the Group Provider by 
clicking onto "Add Group" button on provider tab.</para></listitem>
+        <listitem><para>An existing group can be deleted from the Group 
Provider by clicking onto "Delete Group" button on provider 
tab.</para></listitem>
+        <listitem><para>On clicking onto group name in the groups grid, the 
tab with the list of existing
+        group members is displayed for the Group.</para></listitem>
+        <listitem><para>From the Group tab a new member can be added into a 
group or existing members can be deleted
+        from a group by clicking on "Add Group Member" or "Remove Group 
Members" accordingly.</para></listitem>
+     </itemizedlist>
+   </para>
 
   <section role="h3" id="File-Group-Manager">
-    <title>FileGroupManager</title>
-    <para>
-      The FileGroupManager allows specifying group membership in a flat file 
on disk, and is also exposed for inspection and update through the brokers HTTP 
management interface.
-    </para>
+    <title>GroupFile Provider</title>
     <para>
-      To enable the FileGroupManager, add the following configuration to the 
config.xml, adjusting the groupFile attribute value to match your desired 
groups file location.
+      The <emphasis>GroupFile</emphasis> Provider allows specifying group 
membership in a flat file on disk.
+      On adding a new GroupFile Provider the path to the groups file is 
required to be specified.
+      If file does not exist an empty file is created automatically. On 
deletion of GroupFile Provider
+      the groups file is deleted as well. Only one instance of "GroupFile" 
Provider per groups file location can be created.
+      On attempt to create another GroupFile Provider pointing to the same 
location the error will be displayed and
+      the creation will be aborted.
     </para>
 
-    <programlisting><![CDATA[
-    ...
-    <security>
-        <file-group-manager>
-            <attributes>
-              <attribute>
-                <name>groupFile</name>
-                 <value>${conf}/groups</value>
-              </attribute>
-            </attributes>
-        </file-group-manager>
-    </security>]]>
-    ...
-</programlisting>
-
-       <section role="h4" id="File-Group-Manager-FileFormat">
+    <section role="h4" id="File-Group-Manager-FileFormat">
        <title>File Format</title>
-         <para>
+      <para>
             The groups file has the following format:
           </para>
             <programlisting>

Modified: 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-SSL.xml
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-SSL.xml?rev=1480684&r1=1480683&r2=1480684&view=diff
==============================================================================
--- 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-SSL.xml 
(original)
+++ 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security-SSL.xml 
Thu May  9 15:17:33 2013
@@ -25,45 +25,42 @@
 -->
 
 <section id="Java-Broker-Security-SSL">
-    <title>SSL</title>
+<title>SSL</title>
 
     <para>
-        This section will show how to use SSL to enable secure
-        connections between an AMQP message client and the broker.
+        This section guides through the details of configuration of Keystores 
and Trsustores
+        required for enabling of SSL transport and Client Certificate 
Authentication on Broker ports.
+        The details how to configure SSL on Broker ports are provided in <xref 
linkend="Java-Broker-Ports"/>.
     </para>
-    <section role="h2" id="SSL-Keystore">
-        <title>Keystore Configuration</title>
-        <para>
-            The broker configuration file (config.xml) needs to be updated to 
include the required SSL keystore
-            configuration, an example of which can be found below.
-        </para>
-
-        <example>
-        <title>Configuring an SSL Keystore</title>
-        <programlisting><![CDATA[
-<connector>
-  ...
-  <ssl>
-    <enabled>true</enabled>
-    <port>5671</port>
-    <sslOnly>false</sslOnly>
-    <keyStorePath>/path/to/keystore.ks</keyStorePath>
-    <keyStorePassword>keystorepass</keyStorePassword>
-    <certAlias>alias<certAlias>
-  </ssl>
-  ...
-<connector>]]></programlisting>
-        </example>
 
+    <section role="h2" id="Java-Broker-SSL-Keystore">
+        <title>Keystore Configuration</title>
         <para>
-            The certAlias element is an optional way of specifying which 
certificate the broker should use
-            if the keystore contains multiple entries.
+            A Keystore can be added/deleted/edited using <link 
linkend="Java-Broker-Configuring-And-Managing-REST-API">
+            REST Management interfaces</link> and <link 
linkend="Java-Broker-Configuring-And-Managing-Web-Console">
+            Web Management Console</link>. Any number of Keystores can be 
configured on the Broker.
+            SSL ports can be configured with different Keystores.
+        </para>
+
+        <para>The following Keystore managing operations are available from
+        <link linkend="Java-Broker-Configuring-And-Managing-Web-Console">Web 
Management Console</link>:
+        <itemizedlist>
+            <listitem><para>A new Keystore can be added by clicking on "Add 
Key Store" button on the Broker tab.</para></listitem>
+            <listitem><para>Keystore details can be viewed on the Keystore tab 
which is displayed after clicking
+            on Keystore name in the Broker object tree or after clicking on 
Keystore row in Keystores grid on the Broker tab.</para></listitem>
+            <listitem><para>Editing of Keystore can be performed by clicking 
on "Edit" button on the Keystore tab.
+            Changing of Keystore name is unsupported at the moment. If changed 
Keystore is used by the Port
+            the changes on Port object will take effect after Broker 
restart.</para></listitem>
+            <listitem><para>An existing Keystore can be deleted by clicking on 
"Delete Key Store" button on Broker tab
+            or hitting "Delete" button on the Keystore tab. Only unused 
Keystores can be deleted.
+            The deletion of the Keystore configured on any Broker Port is not 
allowed.</para></listitem>
+        </itemizedlist>
         </para>
 
         <para>
-            The sslOnly element controls whether the broker will <emphasis 
role="bold">only</emphasis> bind
-            the configured SSL port(s) or will also bind the non-SSL port(s). 
Setting sslOnly to true will
-            disable the non-SSL ports.
+            The "Keystore certificate alias" field is an optional way of 
specifying which certificate the broker should use
+            if the keystore contains multiple entries. Optionally "Key manager 
factory algorithm" and "Key store type" can
+            be specified on Keystore creation.
         </para>
 
         <important>
@@ -80,39 +77,35 @@
     <section role="h2" id="SSL-Truststore-ClientCertificate">
         <title>Truststore / Client Certificate Authentication</title>
         <para>
-            The SSL trustore and related Client Certificate Authentication 
behaviour can be configured with
-            additional configuration as shown in the example below, in which 
the broker requires client
-            certificate authentication.
-        </para>
-
-        <example>
-        <title>Configuring an SSL Truststore and client auth</title>
-        <programlisting><![CDATA[
-<connector>
-  ...
-  <ssl>
-    ...
-    <trustStorePath>/path/to/truststore.ks</trustStorePath>
-    <trustStorePassword>truststorepass</trustStorePassword>
-    <needClientAuth>true</needClientAuth>
-    <wantClientAuth>false</wantClientAuth>
-    ...
-  </ssl>
-  ...
-<connector>]]></programlisting>
-        </example>
-
-        <para>
-            The needClientAuth and wantClientAuth elements allow control of 
whether the client must present an
-            SSL certificate. Only one of these elements is needed but both may 
be used at the same time.
-            A socket's client authentication setting is one of three states: 
required (needClientAuth = true),
-            requested (wantClientAuth = true), or none desired (both false, 
the default). If both elements are
-            set to true, needClientAuth takes precedence.
+            The SSL trustore and related Client Certificate Authentication 
behaviour can be configured
+            by adding a Trustore configured object and associating it with the 
SSL port.
+            A Truststore can be added/deleted/edited using <link 
linkend="Java-Broker-Configuring-And-Managing-REST-API">
+            REST Management interfaces</link> and <link 
linkend="Java-Broker-Configuring-And-Managing-Web-Console">
+            Web Management Console</link>. Any number of Trustores can be 
configured on the Broker.
+            Multiple Trustores can be configured on Broker SSL Ports.
+        </para>
+
+        <para>The following Truststore managing operations are available from
+        <link linkend="Java-Broker-Configuring-And-Managing-Web-Console">Web 
Management Console</link>:
+        <itemizedlist>
+            <listitem><para>A new Truststore can be added by clicking on "Add 
Trust Store" button on the Broker tab.</para></listitem>
+            <listitem><para>Truststore details can be viewed on the Truststore 
tab which is displayed after clicking
+            onto Truststore name in the Broker object tree or after clicking 
onto Truststore row in Truststores grid on the Broker tab.</para></listitem>
+            <listitem><para>Trustore can be edited by clicking onto "Edit" 
button on the Trustore tab.
+            Changing of Trustore name is unsupported at the 
moment.</para></listitem>
+            <listitem><para>An existing Trustore can be deleted by clicking 
onto "Delete Trust Store" button
+            on Broker tab or "Delete" button on the Truststore tab. Only 
unused Truststores can be deleted.
+            The deletion of the Truststore configured on any Broker Port is 
not allowed.</para></listitem>
+        </itemizedlist>
+        </para>
+
+        <para>When "Peers Only" option is selected for the Truststore it will 
allow logging in for the clients
+        with the certificate exactly matching the certificate loaded in the 
Truststore database,
+        thus, authenticating the connections with self signed certificates not 
nessesary signed by CA.
         </para>
 
-        <para>
-            When using Client Certificate Authentication it may be desirable 
to use the External Authentication
-            Manager, for details see <xref 
linkend="ExternalAuthManager"></xref>
+        <para>"Trust manager factory algorithm" and "Trust store type" can
+            be optionally specified for the Trustore.
         </para>
 
     </section>

Modified: 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security.xml
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security.xml?rev=1480684&r1=1480683&r2=1480684&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security.xml 
(original)
+++ qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Security.xml 
Thu May  9 15:17:33 2013
@@ -22,9 +22,8 @@
 
 <chapter id="Java-Broker-Security">
   <title>Security</title>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; 
href="Java-Broker-Security-Users-And-Groups.xml"/>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; 
href="Java-Broker-Security-Group-Providers.xml"/>
         <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; 
href="Java-Broker-Security-Authentication-Providers.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; 
href="Java-Broker-Security-Group-Providers.xml"/>
         <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; 
href="Java-Broker-Security-ACLs.xml"/>
         <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; 
href="Java-Broker-Security-SSL.xml"/>
 </chapter>

Modified: 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-BDB-Store.xml
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-BDB-Store.xml?rev=1480684&r1=1480683&r2=1480684&view=diff
==============================================================================
--- 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-BDB-Store.xml
 (original)
+++ 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-BDB-Store.xml
 Thu May  9 15:17:33 2013
@@ -25,13 +25,25 @@
 -->
 
 <section id="Java-Broker-Stores-BDB-Store">
-  <title>BDB Store</title>
+  <title>BDB Message Store</title>
   <para>
     The Java broker has an <emphasis>optional</emphasis> message store 
implementation backed by Oracle BDB JE.
     This section will detail where to download the optional dependency from, 
how to add it to the broker installation,
     and provide an example configuration for using the BDBMessageStore.
   </para>
 
+  <para>
+    The BDBMessageStore can be selected on Virtual Host creation
+    via <link linkend="Java-Broker-Configuring-And-Managing-REST-API">REST 
Management interfaces</link>
+    and <link linkend="Java-Broker-Configuring-And-Managing-Web-Console">Web 
Management Console</link>.
+    For details, see <xref linkend="Java-Broker-Virtual-Hosts"/>.
+  </para>
+
+  <para>
+    Alternatively, the BDBMessageStore can configured in Virtual Host 
configuration xml.
+    For details, see <xref 
linkend="Java-Broker-Stores-BDB-Store-Configuration"/>.
+  </para>
+
   <section role="h3" id="Java-Broker-Stores-BDB-Store-BDBJE-Download">
     <title>Oracle BDB JE download</title>
     <para>
@@ -63,32 +75,4 @@ cp je-&oracleBdbProductVersion;.jar qpid
 copy je-&oracleBdbProductVersion;.jar 
qpid-broker-&qpidCurrentRelease;\lib\opt</programlisting>
   </section>
 
-
-
-  <section role="h3" id="Java-Broker-Stores-BDB-Store-Configuration">
-    <title>Configuration</title>
-    <para>
-      In order to use the BDBMessageStore, you must configure it for each 
VirtualHost desired by updating the store element
-      to specify the associated store class and provide a directory location 
for the data to be written, as shown below.
-    </para>
-
-    <example>
-      <title>Configuring a VirtualHost to use the BDBMessageStore</title>
-      <programlisting><![CDATA[
-<virtualhosts>
-  <virtualhost>
-    <name>vhostname</name>
-    <vhostname>
-      <store>
-        <class>org.apache.qpid.server.store.berkeleydb.BDBMessageStore</class>
-        <environment-path>${QPID_WORK}/bdbstore/vhostname</environment-path>
-      </store>
-      ...
-    </vhostname>
-  </virtualhost>
-</virtualhosts>
-]]></programlisting>
-    </example>
-  </section>
-
 </section>

Modified: 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-Derby-Store.xml
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-Derby-Store.xml?rev=1480684&r1=1480683&r2=1480684&view=diff
==============================================================================
--- 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-Derby-Store.xml
 (original)
+++ 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-Derby-Store.xml
 Thu May  9 15:17:33 2013
@@ -21,36 +21,22 @@
 -->
 
 <section id="Java-Broker-Stores-Derby-Store">
-<title>Derby Store</title>
+<title>Derby Message Store</title>
   <para>
     The Java broker has a message store implementation backed by Apache Derby.
     This section will detail configuration for using the DerbyMessageStore.
   </para>
 
-  <section role="h3" id="Java-Broker-Stores-Derby-Store-Configuration">
-    <title>Configuration</title>
-    <para>
-      In order to use the DerbyMessageStore, you must configure it for each 
VirtualHost desired by updating the store element
-      to specify the associated store class and provide a directory location 
for the data to be written, as shown below.
-    </para>
+  <para>
+    The DerbyMessageStore can be selected on Virtual Host creation
+    via <link linkend="Java-Broker-Configuring-And-Managing-REST-API">REST 
Management interfaces</link>
+    and <link linkend="Java-Broker-Configuring-And-Managing-Web-Console">Web 
Management Console</link>.
+    For details, see <xref linkend="Java-Broker-Virtual-Hosts"/>.
+  </para>
 
-    <example>
-      <title>Configuring a VirtualHost to use the DerbyMessageStore</title>
-      <programlisting><![CDATA[
-<virtualhosts>
-  <virtualhost>
-    <name>vhostname</name>
-    <vhostname>
-      <store>
-        <class>org.apache.qpid.server.store.DerbyMessageStore</class>
-        <environment-path>${QPID_WORK}/derbystore/vhostname</environment-path>
-      </store>
-      ...
-    </vhostname>
-  </virtualhost>
-</virtualhosts>
-]]></programlisting>
-    </example>
-  </section>
+  <para>
+    Alternatively, the DerbyMessageStore can configured in Virtual Host 
configuration xml.
+    For details, see <xref 
linkend="Java-Broker-Stores-Derby-Store-Configuration"/>.
+  </para>
 
 </section>

Modified: 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-HA-BDB-Store.xml
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-HA-BDB-Store.xml?rev=1480684&r1=1480683&r2=1480684&view=diff
==============================================================================
--- 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-HA-BDB-Store.xml
 (original)
+++ 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-HA-BDB-Store.xml
 Thu May  9 15:17:33 2013
@@ -21,7 +21,7 @@
 -->
 
 <section id="Java-Broker-Stores-HA-BDB-Store">
-  <title>High Availability BDB Store</title>
+  <title>High Availability BDB Message Store</title>
   <para>
     The Java broker has an <emphasis>optional</emphasis> High Availability 
message store implementation backed by Oracle BDB JE HA.
     This section references information on where to download the optional 
dependency from, how to add it to the broker

Modified: 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-Memory-Store.xml
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-Memory-Store.xml?rev=1480684&r1=1480683&r2=1480684&view=diff
==============================================================================
--- 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-Memory-Store.xml
 (original)
+++ 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-Memory-Store.xml
 Thu May  9 15:17:33 2013
@@ -21,7 +21,7 @@
 -->
 
 <section id="Java-Broker-Stores-Memory-Store">
-  <title>Memory Store</title>
+  <title>Memory Message Store</title>
   <para>
     The Java broker has an in-memory message store implementation.
     This section will detail configuration for using the MemoryMessageStore.
@@ -32,30 +32,16 @@
     ability to store new messages will be entirely constrained by the JVM heap 
size.
   </para>
 
-  <section role="h3" id="Java-Broker-Stores-Memory-Store-Configuration">
-    <title>Configuration</title>
-    <para>
-      In order to use the MemoryMessageStore, you must configure it for each 
VirtualHost desired by updating the store element
-      to specify the associated store class, as shown below.
-    </para>
-
-    <example>
-      <title>Configuring a VirtualHost to use the MemoryMessageStore</title>
-      <programlisting><![CDATA[
-<virtualhosts>
-  <virtualhost>
-    <name>vhostname</name>
-    <vhostname>
-      <store>
-        <class>org.apache.qpid.server.store.MemoryMessageStore</class
-      </store>
-      ...
-    </vhostname>
-  </virtualhost>
-</virtualhosts>
-]]></programlisting>
-    </example>
-  </section>
+  <para>
+    The MemoryMessageStore can be selected on Virtual Host creation
+    via <link linkend="Java-Broker-Configuring-And-Managing-REST-API">REST 
Management interfaces</link>
+    and <link linkend="Java-Broker-Configuring-And-Managing-Web-Console">Web 
Management Console</link>.
+    For details, see <xref linkend="Java-Broker-Virtual-Hosts"/>.
+  </para>
 
+  <para>
+    Alternatively, the MemoryMessageStore can configured in Virtual Host 
configuration xml.
+    For details, see <xref 
linkend="Java-Broker-Stores-Memory-Store-Configuration"/>.
+  </para>
 
 </section>

Modified: 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-SQL-Store.xml
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-SQL-Store.xml?rev=1480684&r1=1480683&r2=1480684&view=diff
==============================================================================
--- 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-SQL-Store.xml
 (original)
+++ 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores-SQL-Store.xml
 Thu May  9 15:17:33 2013
@@ -21,6 +21,31 @@
 -->
 
 <section id="Java-Broker-Stores-SQL-Store">
-<title>SQL Store</title>
+<title>SQL Message Store</title>
+<para>
+    The Java broker has a message store implementation backed by JDBC API.
+    This section will detail configuration for using the JDBCMessageStore.
+  </para>
+
+  <para>
+    The JDBCMessageStore can be selected on Virtual Host creation
+    via <link linkend="Java-Broker-Configuring-And-Managing-REST-API">REST 
Management interfaces</link>
+    and <link linkend="Java-Broker-Configuring-And-Managing-Web-Console">Web 
Management Console</link>.
+    For details, see <xref linkend="Java-Broker-Virtual-Hosts"/>.
+  </para>
+
+  <para>
+    Alternatively, the JDBCMessageStore can configured in Virtual Host 
configuration xml.
+    For details, see <xref 
linkend="Java-Broker-Stores-JDBC-Store-Configuration"/>.
+  </para>
+
+  <section role="h3" id="Java-Broker-Stores-JDBC-Store-Driver">
+    <title>JDBC driver</title>
+    <para>
+      Only JDBC 4.0 compatible drivers can be used with JDBCMessageStore as it 
does not register a driver class explicitly.
+      In order to use a JDBCMessageStore a driver library is required to be 
present in the Broker classpath.
+      For the standard Broker distribution a driver library can be put into 
${QPID_HOME}/lib/opt folder.
+    </para>
+  </section>
 
 </section>

Modified: 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores.xml
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores.xml?rev=1480684&r1=1480683&r2=1480684&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores.xml 
(original)
+++ qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Stores.xml Thu 
May  9 15:17:33 2013
@@ -21,7 +21,7 @@
 -->
 
 <chapter  id="Java-Broker-Stores">
-    <title>Stores</title>
+    <title>Virtual Host Message Stores</title>
         <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; 
href="Java-Broker-Stores-Memory-Store.xml"/>
         <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; 
href="Java-Broker-Stores-Derby-Store.xml"/>
         <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; 
href="Java-Broker-Stores-SQL-Store.xml"/>

Modified: 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Virtual-Hosts.xml
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Virtual-Hosts.xml?rev=1480684&r1=1480683&r2=1480684&view=diff
==============================================================================
--- 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Virtual-Hosts.xml 
(original)
+++ 
qpid/branches/0.22/qpid/doc/book/src/java-broker/Java-Broker-Virtual-Hosts.xml 
Thu May  9 15:17:33 2013
@@ -22,4 +22,45 @@
 
 <chapter id="Java-Broker-Virtual-Hosts">
   <title>Virtual Hosts</title>
+
+  <section id="Java-Broker-Virtual-Hosts-Configuring-Managing">
+      <title>Configuring And Managing</title>
+      <para>One or more Virtual Hosts can be configured on the Broker. The
+      <link linkend="Java-Broker-Configuring-And-Managing-REST-API">REST 
Management interfaces</link>
+      and <link linkend="Java-Broker-Configuring-And-Managing-Web-Console">Web 
Management Console</link>
+      can be used to add and delete Virtual Hosts.</para>
+
+      <para>A new Virtual Host can be created in two ways by specifying either:
+        <itemizedlist>
+            <listitem><para>A <link linkend="Java-Broker-Stores">store 
type</link> and a store path</para></listitem>
+            <listitem><para>A path to Virtual Host XML configuration 
file</para></listitem>
+        </itemizedlist>
+        In first case the virtual host attributes are derived from Broker 
global attributes.
+        In the second case, the Virtual Host specific configuration can be set 
in the configuration XML,
+        for example, alert thresholds, message store, queues, exchanges, ACL 
etc. The first way of Virtual Host creation
+        is more preferable as it will reduce the burden of configuration 
changes when migrating to a newer version,
+        especially, when the support of Virtual Host configuration XML will be 
removed. However, the second way
+        is the only way at the moment to configure <link 
linkend="Java-Broker-Stores-HA-BDB-Store">HA Message Store</link>,
+        Virtual Host <link linkend="Java-Broker-Security-ACLs">ACL</link> and 
virtual host specific attributes.
+      </para>
+
+      <para>The following Virtual Host Managing operations are available from
+        <link linkend="Java-Broker-Configuring-And-Managing-Web-Console">Web 
Management Console</link>:
+        <itemizedlist>
+            <listitem><para>A new Virtual Host can be added into Broker by 
pressing "Add Virtual Host" button
+            on the Broker tab.</para></listitem>
+            <listitem><para>The existing Virtual Host(s) can be removed by 
pressing "Remove Virtual Host" button on the Broker tab.</para></listitem>
+            <listitem><para>The Virtual Host details can be viewed on the 
Virtual Host tab.
+            This tab can be displayed after clicking onto Virtual Host Name in 
the Broker object tree
+            or onto the Virtual Host row in the Virtual Hosts grid on the 
Broker tab.</para></listitem>
+            <listitem><para>Queues can be configured (added/removed) from 
Virtual Host tab</para></listitem>
+            <listitem><para>Exchange can be configured (added/removed) from 
Virtual Host tab</para></listitem>
+            <listitem><para>Existing Exchange/Queue tabs can be navigated from 
Virtual Host tab</para></listitem>
+        </itemizedlist>
+      </para>
+
+  </section>
+
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; 
href="Java-Broker-Virtual-Hosts-Configuration.xml"/>
+
 </chapter>

Modified: 
qpid/branches/0.22/qpid/doc/book/src/java-broker/images/Management-Web-Console.png
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/doc/book/src/java-broker/images/Management-Web-Console.png?rev=1480684&r1=1480683&r2=1480684&view=diff
==============================================================================
Files 
qpid/branches/0.22/qpid/doc/book/src/java-broker/images/Management-Web-Console.png
 (original) and 
qpid/branches/0.22/qpid/doc/book/src/java-broker/images/Management-Web-Console.png
 Thu May  9 15:17:33 2013 differ



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to