Ahoj
Zastavam nazor, ze priklad je za 1000 stran teorie:
DirContext dirContext = null;
DirContext dirContextUser = null;
NamingEnumeration results = null;
String userHierarchy = null;
try {
Hashtable<String, String> account = new Hashtable<String, String>();
account.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory);
account.put("com.sun.jndi.ldap.connect.timeout", "5000");
account.put(Context.PROVIDER_URL, "ldap://" + server + portS);
account.put(Context.SECURITY_PRINCIPAL, login);
account.put(Context.SECURITY_CREDENTIALS, psswd);
account.put(Context.SECURITY_AUTHENTICATION, securityAuthentication);
dirContextOKBase = new InitialDirContext(account);
SearchControls controls = new SearchControls();
controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
results = dirContext.search(hierarchy,
"(&(objectClass=user)(samaccountname=" + loginUser + "))", controls);
while (results.hasMoreElements()) {
SearchResult sr = (SearchResult) results.next();
userHierarchy = sr.getName();
}
} catch (CommunicationException e) {
logger.error(e);
throw new
AutentizaceException(AutentizaceExceptionTyp.CHYBA_KOMUNIKACE_S_AD);
} catch (AuthenticationException e) {
logger.error(e);
throw new AutentizaceException(AutentizaceExceptionTyp.VADNY_UCET_K_AD);
} catch (NamingException e) {
logger.error(e);
throw new
AutentizaceException(AutentizaceExceptionTyp.CHYBA_KOMUNIKACE_S_AD);
}
finally {
if (results != null) {
try {
results.close();
} catch (NamingException e) {
logger.error(e);
}
}
if (dirContextOKBase != null) {
try {
dirContextOKBase.close();
} catch (NamingException e) {
logger.error(e);
}
}
if (dirContextUser != null) {
try {
dirContextUser.close();
} catch (NamingException e) {
logger.error(e);
}
}
}
l.
________________________________
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Pavel Zelenka
Sent: Wednesday, November 21, 2007 10:54 AM
To: Java
Subject: Re: Tomcat + LDAP
Ne nepouzivam.
"Petr Burdik" <[EMAIL PROTECTED]>
Odeslal: [EMAIL PROTECTED]
21.11.2007 09:13
Odpovězte prosím uživateli
Java <[email protected]>
Komu
Java <[email protected]>
Kopie
Předmět
Re: Tomcat + LDAP
Jeste dotaz nez napisu cely prispevek. Pouzivate spring?
Pet
On Wed, 21 Nov 2007 08:56:26 +0100, Pavel Zelenka <[EMAIL PROTECTED]>
wrote:
> Dobrý den,
>
> potřeboval bych poradit jak rozchodit LDAP autentifikaci.
> V současnosti provádím autentifikaci uživatelů webové aplikace, která
> běží
>
> na Tomcatu 6.0.14 tak, že mám v SQL databázi tabulku uživatelů a
> uživatelé
>
> se hlásí prostřednictvím formuláře, kde následně servletem zkontroluji
> jméno a heslo.
> Chtěl bych však pro autentifikaci uživatelů použít LDAP server, který u
> nás běží. Z dostupných informací, které jsem dopsud našel však nejsem
> nijak moudrý. Nevíte jak na to?
>
> Možná bych ještě upřesnil, že bych autentifikaci chtěl nadále dělat tak,
> že uživatel zadá do formuláře jméno + heslo a následně servlet provede
> autentifikaci oproti LDAP. Z různých zdrojů jsem nakonec vypotil
> následujcí kód, ale nevím jestli je vhodný i pro webovou aplikaci a
> hlavně, jestli je to správné řešení
>
> public class Main {
>
> public static void main(String[] args) {
>
> Hashtable env = new Hashtable();
> env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
> env.put(Context.PROVIDER_URL,
> "ldap://muj_server:389/o=Mediaservis");
>
> // Authenticate as
> env.put(Context.SECURITY_AUTHENTICATION, "simple");
> env.put(Context.SECURITY_PRINCIPAL, "cn=Pavel Zelenka,
> o=Mediaservis");
> env.put(Context.SECURITY_CREDENTIALS, "heslo");
>
> try {
> // Create initial context
> DirContext ctx = new InitialDirContext(env);
> ctx.close();
> } catch (NamingException e) {
> e.printStackTrace();
> }
> }
> }
>
> Díky
>
> Pavel Zelenka
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/