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/

Odpovedet emailem