Authenticating against Active Directory

From MyWiki
Revision as of 15:07, 29 August 2014 by George2 (Talk | contribs)

Jump to: navigation, search

Code to check that user credentials are valid

package myservlets;

import java.util.*; import javax.naming.*; import javax.naming.directory.*;

public class QueryNewAd {

public String checkPass(String SERVER, String USERNAME, String PASS){

String server = ""; String userName = ""; String pass = "";

server = SERVER; userName = USERNAME; pass = PASS;


try {
   Hashtable env = new Hashtable();
   env.put(Context.INITIAL_CONTEXT_FACTORY,
            "com.sun.jndi.ldap.LdapCtxFactory");
   env.put(Context.PROVIDER_URL,
            "LDAP://"+server+".campus.goldsmiths.ac.uk:389"); //replace with your server URL/IP
            //only DIGEST-MD5 works with our Windows Active Directory
   env.put(Context.SECURITY_AUTHENTICATION,
            "DIGEST-MD5"); //No other SALS worked with me
   env.put(Context.SECURITY_PRINCIPAL,
           userName); // specify the username ONLY to let Microsoft Happy
   env.put(Context.SECURITY_CREDENTIALS, pass);   //the password
   DirContext ctx = new InitialDirContext(env);
   ctx.close();
 } catch(NamingException ne) {
   return "fail";

}

 //if no exception, the user is already authenticated.
   return "success";

}}

~