# Anmeldung im LDAP



## TomSto (3. September 2004)

Hallo Forum!

Ich melde mich zurzeit anonym an einem LDAP an und lese Datensätze aus.
Nun sollte ich aber auch noch am besten Datensätze hinzufügen, bearbeiten und löschen können. Die Klassen dafür sind mir bekannt. 
Nur das mit dem Login kann ich nirgends finden. 

Anonym melde ich mich wie folgt an:


```
Hashtable props = new Hashtable();
      props.put(
        Context.INITIAL_CONTEXT_FACTORY,
        "com.sun.jndi.ldap.LdapCtxFactory");
        props.put(Context.PROVIDER_URL, "ldap://120.100.30.424:389");
        DirContext ctx = new InitialDirContext(props);
...
```

Weis einer wie das per Anmeldung funktioniert?!

Danke


----------



## Thomas Darimont (4. September 2004)

Hallo!

Schau mal hier:

http://java.sun.com/security/jaas/doc/api.html#LoginContext

Gruß Tom


----------



## TomSto (6. September 2004)

Danke.

Nur leider werde ich nicht so richtig aus dem JAAS schlau. 
Ist das in der normalen bzw. standart API drin?


----------



## TomSto (7. September 2004)

Hi, ich habe versucht mit der Hashtable spezielle Parameter zu übergeben. Der Code ist der obige, nur folgende Zeilen aheb ich ergänzt:

env.put(Context.SECURITY_PRINCIPAL, Name);
                         "                       _Credentials, Passwort);
                           "                     _AUTHENTICATION, "simple");
Ich melde mich mit dem root User an.

Leider bekomme ich folgende Fehlermeldung:


jdk1.4\lib\htmlconverter.jar;C:\Programme\JBuilderX\jdk1.4\lib\tools.jar"  login_eingabe.Mainklasse 
javax.naming.CommunicationException: [LDAP: error code 2 - Protocol Error]

	at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3036)

	at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2934)

	at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2735)

	at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2649)

	at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:290)

	at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:175)

	at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:193)

	at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:136)

	at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:66)

	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)

	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)

	at javax.naming.InitialContext.init(InitialContext.java:219)

	at javax.naming.InitialContext.<init>(InitialContext.java:195)

	at javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:80)

	at login_eingabe.Funktionen.Anmelden(Funktionen.java:34)

	at login_eingabe.Login_Eingabe.bt_login_actionPerformed(Login_Eingabe.java:83)

	at login_eingabe.Login_Eingabe_bt_login_actionAdapter.actionPerformed(Login_Eingabe.java:111)

	at java.awt.Button.processActionEvent(Button.java:382)

	at java.awt.Button.processEvent(Button.java:350)

	at java.awt.Component.dispatchEventImpl(Component.java:3615)

	at java.awt.Component.dispatchEvent(Component.java:3477)

	at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)

	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

	at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

 

Ich hoffe ihr könnt mir weiterhelfen.

gruss


----------

