Craig,

At 18:37 15/03/02, you wrote:
>   John, thanks for your patience with me on getting this patch committed!
>   Could you also make sure that I got the facts right on my edits to the
>   configuration docs?  (A patch to tomcat-docs/realm-howto.xml to explain
>   the new options would also be cool.)

Thanks for somehow finding the time to commit it!. I've attached a patch 
for the
configuration docs.

I'll try to tackle the howto later this week.

John.


Index: realm.xml
===================================================================
RCS file: /home/cvspublic/jakarta-tomcat-4.0/webapps/tomcat-docs/config/realm.xml,v
retrieving revision 1.3
diff -u -r1.3 realm.xml
--- realm.xml   15 Mar 2002 18:37:42 -0000      1.3
+++ realm.xml   17 Mar 2002 13:48:28 -0000
@@ -160,27 +160,54 @@
 
     <p>The <strong>JNDI Directory Realm</strong> connects Catalina to
     an LDAP Directory, accessed through an appropriate JNDI driver,
-    to perform lookups of usernames, passwords, and their associated
-    roles.  Because the lookup is done each time that it is required,
-    changes to the directory will be immediately reflected in the
-    information used to authenticate new logins.</p>
-
-    <p>A rich set of additional attributes lets you configure the required
-    connection to the underlying directory, as well as the element and
-    attribute names used to retrieve the required information:</p>
+    that stores usernames, passwords, and their associated roles. Changes to the
+    directory are immediately reflected in the information used to
+    authenticate new logins.</p>
+
+
+    <p>The directory realm is flexible enough to accommodate a variety of
+    approaches to using LDAP for authentication:</p>
+
+    <ul>
+    <li>The realm can either use a pattern to determine the user's
+    distinguished name (DN) or search the directory to locate the
+    user's directory entry.
+    </li>
+
+    <li>The realm can authenticate the user either by binding to the
+    directory with the username and password specified by the user, or
+    by retrieving the password from the user's entry and performing a
+    comparison locally.
+    </li>
+
+    <li>Roles may be represented in the directory as explicit entries
+    found by a directory search (e.g. group entries of which the user
+    is a member), as the values of an attribute in the user's entry,
+    or both.
+    </li>
+    </ul>
+
+    <p> A rich set of additional attributes lets you configure the
+    required behaviour as well as the connection to the underlying
+    directory and the element and attribute names used to retrieve
+    information from the directory:</p>
 
     <attributes>
 
       <attribute name="connectionName" required="false">
-        <p>The directory username to use when establishing the JNDI
-        connection.  This attribute is required if you specify the
-        <code>userPassword</code> property, and not used otherwise.</p>
+        <p>The directory username to use when establishing a
+        connection to the directory to search or retrieve
+        information. If not specified an anonymous connection is made,
+        which is often sufficient unless you specify the
+        <code>userPassword</code> property.</p>
       </attribute>
 
       <attribute name="connectionPassword" required="false">
-        <p>The directory password to use when establishing the JNDI
-        connection.  This attribute is required if you specify the
-        <code>userPassword</code> property, and not used otherwise.</p>
+        <p>The directory password to use when establishing a
+        connection to the directory to search or retrieve
+        information. If not specified an anonymous connection is made,
+        which is often sufficient unless you specify the
+        <code>userPassword</code> property.</p>
       </attribute>
 
       <attribute name="connectionURL" required="true">
@@ -194,28 +221,38 @@
         assumes that the standard JNDI LDAP provider will be utilized.</p>
       </attribute>
 
-      <attribute name="roleBase" required="true">
-        <p>The base directory element for performing role searches.</p>
+      <attribute name="roleBase" required="false">
+        <p>The base directory entry for performing role searches. If
+        not specified a role search does not take place and roles are taken
+        only from the attribute in the user's entry specified by the
+        <code>userRoleName</code> property.</p>
       </attribute>
 
       <attribute name="roleName" required="false">
-        <p>The name of the directory attribute to retrieve when selecting
-        the assigned roles for a user.  If not specified, use the
-        <code>userRoleName</code> property to specify the name of an
-        attribute, in the user's entry, that contains zero or more role
-        names assigned to this user.</p>
-      </attribute>
-
-      <attribute name="roleSearch" required="true">
-        <p>The LDAP search expression to use when selecting roles for a
-        particular user, with <code>{0}</code> marking where the actual
-        username should be inserted.</p>
-      </attribute>
-
-      <attribute name="roleSubtree" required="true">
-        <p>Set to <code>true</code> to search subtrees of the elements
-        selected by the <code>roleSearch</code> search expression.  Set
-        to <code>false</code> to not search subtrees.</p>
+        <p>The name of the attribute that contains role names in the
+        directory entries found by a role search. In addition you can
+        use the <code>userRoleName</code> property to specify the name
+        of an attribute, in the user's entry, containing additional
+        role names.  If <code>roleName</code> is not specified a role
+        search does not take place, and roles are taken only from the
+        user's entry.</p>
+      </attribute>
+
+      <attribute name="roleSearch" required="false">
+        <p>The LDAP filter expression used for performing role
+        searches.  Use <code>{0}</code> to substitute the
+        distinguished name (DN) of the user, and/or <code>{1}</code> to
+        substitute the username. If not specified a role search does
+        not take place and roles are taken only from the attribute in
+        the user's entry specified by the <code>userRoleName</code>
+        property.</p>
+      </attribute>
+
+      <attribute name="roleSubtree" required="false">
+        <p>Set to <code>true</code> if you want to search the entire
+        subtree of the element specified by the <code>roleBase</code>
+        property for role entries associated with the user. The default value of
+        <code>false</code> causes only the top level to be searched.</p>
       </attribute>
 
       <attribute name="userBase" required="false">
@@ -225,50 +262,56 @@
       </attribute>
 
       <attribute name="userPassword" required="false">
-        <p>Name of the LDAP element containing the user's password.  If you
-        specify this value, JNDIRealm will bind to the directory using
-        the values specified by <code>connectionName</code> and
+        <p>Name of the attribute in the user's entry containing the
+        user's password.  If you specify this value, JNDIRealm will
+        bind to the directory using the values specified by
+        <code>connectionName</code> and
         <code>connectionPassword</code> properties, and retrieve the
-        corresponding attribute for comparison to the value specified by
-        the user being authenticated.  If you do <strong>not</strong>
-        specify this value, JNDIRealm will attempt to bind to the
-        directory using the username and password specified by the user,
-        with a successful bind being interpreted as an authenticated user.</p>
+        corresponding attribute for comparison to the value specified
+        by the user being authenticated.  If you do
+        <strong>not</strong> specify this value, JNDIRealm will
+        attempt a simple bind to the directory using the username and
+        password specified by the user, with a successful bind being
+        interpreted as an authenticated user.</p>
       </attribute>
 
       <attribute name="userPattern" required="false">
-        <p>The LDAP search expression to use when retrieving the attributes
-        of a particular user, with <code>{0}</code> marking where the
-        actual username should be inserted.  Use this property instead of
-        <code>userSearch</code> if you want to select a particular single
-        entry based on the username.</p>
+        <p>Pattern for the distinguished name (DN) of the user's
+        directory entry, with <code>{0}</code> marking where the
+        actual username should be inserted. You can use this property
+        instead of <code>userSearch</code>, <code>userSubtree</code>
+        and <code>userBase</code> when the distinguished name contains
+        the username and is otherwise the same for all users.</p>
       </attribute>
 
       <attribute name="userRoleName" required="false">
-        <p>The name of a directory attribute, in the user's entry, containing
-        zero or more values for the names of roles assigned to this user.  If
-        not specified, use the <code>roleName</code> property to specify
-        the name of a particular attribute that is retrieved from individual
-        role entries associated with this user.</p>
+        <p>The name of an attribute in the user's directory entry
+        containing zero or more values for the names of roles assigned
+        to this user.  In addition you can use the
+        <code>roleName</code> property to specify the name of an
+        attribute to be retrieved from individual role entries found
+        by searching the directory. If <code>userRoleName</code> is
+        not specified all the roles for a user derive from the role
+        search.</p>
       </attribute>
 
       <attribute name="userSearch" required="false">
-        <p>The LDAP search expression to use when retrieving the attributes
-        of a particular user, with <code>{0}</code> marking where the
-        actual username should be inserted.  Use this property instead of
-        <code>userPattern</code> if you want to search the entire directory
-        (under the optional additional control of the <code>userBase</code>
-        and <code>userSubtree</code> properties) instead of retrieving a
-        particular named entry.</p>
+        <p>The LDAP filter expression to use when searching for a
+        user's directory entry, with <code>{0}</code> marking where
+        the actual username should be inserted.  Use this property
+        (along with the <code>userBase</code> and
+        <code>userSubtree</code> properties) instead of
+        <code>userPattern</code> to search the directory for the
+        user's entry.</p>
       </attribute>
 
       <attribute name="userSubtree" required="false">
-        <p>Set to <code>true</code> if you are using the
-        <code>userSearch</code> pattern to search for authenticated users,
-        and you want to search subtrees of the element specified by the
-        <code>userBase</code> element.  The default value of <code>false</code>
-        causes only the specified level to be searched.  Not used if you are
-        using the <code>userPattern</code> expression.</p>
+        <p>Set to <code>true</code> if you want to search the entire
+        subtree of the element specified by the <code>userBase</code>
+        property for the user's entry. The default value of
+        <code>false</code> causes only the top level to be searched.
+        Not used if you are using the <code>userPattern</code>
+        expression.</p>
       </attribute>
 
     </attributes>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to