1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| package ldap;
import java.io.IOException;
import java.security.MessageDigest;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchResult;
import javax.naming.ldap.HasControls;
public class Auth {
public Auth(String user,String password) throws NamingException
{
//System.setProperty("javax.net.ssl.trustStore","C:\\Program Files\\Java\\jdk1.6.0_25\\jre\\lib\\security\\cacerts");
String principal = "aoLdapKey=AAA******,ou=people,dc=atosorigin,dc=com";
String myContext = "com.sun.jndi.ldap.LdapCtxFactory";// Nom du factory
String provider = "ldap://ldap.atosorigin.com:389"; // adresse du serveur LDAP
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,myContext);
env.put(Context.PROVIDER_URL,provider);
env.put(Context.SECURITY_AUTHENTICATION,"DIGEST-MD5");
env.put(Context.SECURITY_PRINCIPAL,principal);
env.put(Context.SECURITY_CREDENTIALS,password);
//env.put("java.naming.security.sasl.realm", "JNDITutorial");
env.put("java.naming.ldap.version", "3");
//env.put(Context.SECURITY_PROTOCOL, "ssl");
env.put("javax.security.sasl.qop", "auth"); //auth-int -conf
try {
DirContext ctx = new InitialDirContext(env);
System.out.println("Serveur trouvé !");
// permet de verifier si je me connecte à mon serveur LDAP
try
{
DirContext schema = ctx.getSchema(principal);
System.out.println("OK connect");
}
catch (NamingException e) {
System.out.println("KO connect");
}
BasicAttributes match = new BasicAttributes(true);
match.put(new BasicAttribute("uid", user));
//match.put(new BasicAttribute("userPassword", "********"));
NamingEnumeration answer = ctx.search("ou=people,dc=atosorigin,dc=com", match);
System.out.println(answer.hasMoreElements());
System.out.println(answer.nextElement());
System.exit(0);
} catch (NamingException e) {
System.out.println("Failed !");
System.out.println(e.getExplanation());
System.exit(1);
}
}
public static void main(String [ ] args) throws IOException, NamingException
{
Auth a = new Auth("A******","*******");
}
} |
Partager