Re: How do I bind to LDAP with a username/password
- From: laredotornado <laredotornado@xxxxxxxxxxx>
- Date: Wed, 11 Mar 2009 07:06:14 -0700 (PDT)
On Mar 11, 4:18 am, Nigel Wade <n...@xxxxxxxxxxxx> wrote:
laredotornadowrote:
Hi,
I'm using Java 1.5. Does anyone know how I can bind to an LDAP server
with a username and password? Note that this is different from
authenticating against an LDAP server with a username and password.
Authentication against LDAP normally works by attempting to bind with the
supplied credentials. Failure to bind indicates a failure to authenticate..
The only other way to do it would be to bind with some master credentials which
had full read access (including passwords), perform a search for the
SECURITY_PRINCIPAL, fetch the encrypted password for that DN and compare it to
the SECURITY_CREDENTIALS (after suitable encryption of said
SECURITY_CREDENTIALS).
That I can set up like so ...
Hashtable env = new Hashtable(5, 0.75f);
...
env.put(Context.SECURITY_PRINCIPAL, name+"@" + this.domain);
env.put(Context.SECURITY_CREDENTIALS, pass);
...
InitialLdapContext context = null;
context = new InitialLdapContext(env, null);
I was looking at ways of writing the LDAP connect string (http://
www.rlmueller.net/LDAP_Binding.htm), and there seems to be a place for
the bind username ("cn") but I can't see where the password would go.
and this does the former method, i.e. binding as SECURITY_PRINCIPAL to test
authentication.
Any help is appreciated, - Dave
I think you've already helped yourself, you just don't realize it...
What operation are you wanting to perform on the directory after you've bound to
it?
P.S. Beware the very confusing terminology in JNDI where "bind" means "add",
rather than in LDAP where it means "connect". When you "bind" with JNDI you are
adding an entry into the directory.
--
Nigel Wade
I'm so new to this I'm still not seeing the answer in your reply.
Often you connect anonymously to LDAP and then run a query passing in
different username/passwords to see if they authenticate. In this
case I want to connect with master credentials and then run queries
authenticating others using the
env.put(Context.SECURITY_PRINCIPAL, name+"@" + this.domain);
env.put(Context.SECURITY_CREDENTIALS, pass);
syntax. But how do I connect as the master credentials? IOW, what
code or other URL syntax should I be using before I can perform the
query operation above?
Thanks for your help, - Dave
.
- Follow-Ups:
- Re: How do I bind to LDAP with a username/password
- From: Nigel Wade
- Re: How do I bind to LDAP with a username/password
- References:
- How do I bind to LDAP with a username/password
- From: laredotornado
- Re: How do I bind to LDAP with a username/password
- From: Nigel Wade
- How do I bind to LDAP with a username/password
- Prev by Date: Re: struts2 backward comparability
- Next by Date: Re: Change character in string
- Previous by thread: Re: How do I bind to LDAP with a username/password
- Next by thread: Re: How do I bind to LDAP with a username/password
- Index(es):
Relevant Pages
|