Here's the link to the JNDIRealm doc in the Catalina documentation. The main
Realm how-to doc hasn't been updated yet.

http://jakarta.apache.org/tomcat/tomcat-4.1-doc/catalina/docs/api/org/apache
/catalina/realm/JNDIRealm.html

I think the userSearch attribute is the one that you need to use.

Jon

----- Original Message -----
From: "John Holman" <[EMAIL PROTECTED]>
To: "Tomcat Developers List" <[EMAIL PROTECTED]>
Sent: Friday, June 21, 2002 6:52 PM
Subject: Re: JNDIRealm in v4.1


> Sean
>
> JNDIRealm in 4.1 does include an option to search the directory for the
> user's entry, very much along the lines you suggest (except the
> directory connection is persistent). Unfortunately much of the
> documentation has still not been updated so this is less than obvious -
and
> the spec probably doesn't reflect this functionality either. In the
> meantime have a look at the Java doc for JNDIRealm - and there is some
info
> in the realm configuration page.
>
> John.
>
>
> At 21:49 21/06/02, you wrote:
> >Hello.
> >
> >I just re-read the functional specs for the JNDIRealm in version 4.1
>
>(http://jakarta.apache.org/tomcat/tomcat-4.1-doc/catalina/funcspecs/fs-jndi
-realm.html)
> >
> >I am relatively new to LDAP, so I apologize if my questions are stupid.
> >However, I am a bit confused as to the Username Login Mode
> >functionality.  Without an anonymous connection to the directory service
> >always open as in the Administrator Login Mode, does that imply that an
> >exact DN pattern must be supplied as a realm parameter, and the user's
> >login substituted for the {0} placeholder?
> >
> >My client has a very large NDS directory, with users organized under
> >many different geographic-based organizational units.  However, users
> >from the entire enterprise will be accessing the application.
> >Therefore, having a user DN pattern as a configuration parameter would
> >not work, because the DN pattern will be different for users from
> >different organizational units.
> >
> >Thus, I felt compelled to write my own realm using JNDIRealm as a
> >starting point, with the following processing:
> >
> >Lifecycle Functionality
> >
> >The following processing must be performed when the start() method is
> >called:
> >
> >     * Establish a connection to the configured directory server, using
> >an anonymous connection (NOT a configured system administrator username
> >and password as in the current JNDIRealm).
> >
> >The following processing must be performed when the stop() method is
> >called:
> >
> >     * Close any opened connections to the directory server.
> >
> >Method authenticate() Functionality
> >
> >When authenticate() is called, the following processing is required:
> >
> >     * Using the anonymous connection, perform a directory search to
> >obtain the user's full DN, based on a simple search pattern such as
> >(cn={0}).
> >     * Attempt to bind to the directory server, using the full DN found
> >above and the password provided by the user.
> >     * If the user was not authenticated, release the allocated
> >connection and return null.
> >     * Acquire a List of the security roles assigned to the authenticated
> >user by performing a search using the authenticated user's connection.
> >     * Release the authenticated user's connection.
> >     * Construct a new instance of class
> >org.apache.catalina.realm.GenericPrincipal, passing as constructor
> >arguments: this realm instance, the authenticated username, and a List
> >of the security roles associated with this user.
> >     * Return the newly constructed GenericPrincipal.
> >
> >So here is the question:
> >
> >Have I misunderstood the functional specs for the JNDIRealm in v 4.1, or
> >is the omission of a "search" processing step prior to attempting to
> >bind as the user a serious omission in the functional requirements?  At
> >least equally likely, has my lack of mature LDAP knowledge lead me to
> >make incorrect assumptions that make the whole point moot?
> >
> >BTW, anyone is welcome to my code if they want it.  Just let me know.
> >
> >Sean Dillon
> >
> >
> >--
> >To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> >For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>


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

Reply via email to