Difference between revisions of "Authenticating against Active Directory"
From MyWiki
(Created page with "'''Code to check user credentials'''") |
|||
| Line 1: | Line 1: | ||
| − | '''Code to check user credentials''' | + | '''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"; | ||
| + | }} | ||
| + | |||
| + | ~ | ||
Revision as of 15:07, 29 August 2014
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";
}}
~