# JNDI LDAP-SSL Verbindung, Zertifikat wird nicht angezeigt ?



## PELLE (3. Jul 2007)

Hallo Leute,

mein Code:


```
public void actionPerformed(ActionEvent e)
   {   
	   
	if (e.getSource().equals(pwBT))
        { 
    	    String benutzername = benutzernameTF.getText();
    	    String kennwort = kennwortTF.getText();
	   	 
	    Hashtable env = new Hashtable();
		 
		 

	    String keystore = "C:/Programme/Java/jre1.6.0_01/lib/security/ZertifikatBerlin"; 
	    System.setProperty("javax.net.ssl.trustStore",keystore);
		 
	    env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
	    env.put(Context.PROVIDER_URL,"ldaps://rhein:636/dc=bodensee,dc=de");
		 
	    env.put(Context.SECURITY_PROTOCOL,"SSL");
    	    env.put(Context.SECURITY_AUTHENTICATION, "Simple");
    	    env.put(Context.SECURITY_PRINCIPAL, benutzername);
    	    env.put(Context.SECURITY_CREDENTIALS,kennwort);
    	 
    	 try
    	 {
    		 ctx = new InitialContext(env); 
    		 programmstatusTF.setText("Verbindung aufgebaut");    		 
    		 ctx.close();
    		 
    	 }
    	 catch (Exception er)
    	 {
    		 
    		 programmstatusTF.setText(er.toString());
    	 }   	 
    	 
    		  
      } 
   }
```

Ich bekomme keine Fehlermeldung mehr wie zuvor, da der keystore pfad richtig angepasst wurd etc...


```
javax.naming.CommunicationException: simple bind failed: rhein:636 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]
```

Die ssl Verbindung mit JNDI zu meinem LDAP Server (Windows 2000 Server ) scheint zu funktionieren, ABER... müsste nicht wenn ich mich verbinde ein Zertifikat aufpoppen und mich fragen, ob ich diesem vertrauen möchte? Das tut es nämlich nicht...



> The LDAP defines a set of status codes that are returned with LDAP responses sent by the LDAP server (see RFC 2251).





> LDAP Status Code 	          Meaning 	               Exception or Action
> 0 	                                  Success 	                 Report success.
> 1 	                                   Operations error 	     NamingException
> 2 	                                    Protocol error 	       CommunicationException
> 3 	                                Time limit exceeded. 	   TimeLimitExceededException



Wenn die verbindung nicht richtig funzt und eine Exception geworfen wird meldet dies der ldap server dem client, sprich ich müsste ja auch irgendwie abfragen können ob der ldap status code == 0 ist ?? ODER ??? Somit wüßte ich das alles ok ist, weil dieses verflixte Zertifikat nicht angezeigt wird...


----------



## PELLE (5. Jul 2007)

hat sich geklärt, dass gehört so, dass es nicht angezeigt wird!!!


----------



## mikachu (5. Jul 2007)

Gut,
wenns sich erledigt hat, dann markieren diesen Thread als gelöst .


----------

