您的位置:首页 > 编程语言 > Java开发

Java连接微软 Active Directory进行用户验证

2011-10-13 14:38 357 查看
以下是代码片段:

 import java.util.Hashtable; 

  import javax.naming.Context; 

  import javax.naming.NamingException; 

  import javax.naming.directory.DirContext; 

  import javax.naming.directory.InitialDirContext; 

  /** 

  * @author winter 

  * 

  */ 

  public class Test { 

  /** 

  * @param args 

  */ 

  public static void main(String[] args) { 

  // TODO Auto-generated method stub 

  String userName = "xxxxx"; //用户名称 

  String password = "xxxxx"; //密码 

  String host = "xxx.xxx.xxx.xxx"; //AD服务器 

  String port = "389"; //端口 

  String domain = "@xxx.com"; //邮箱的后缀名 

  String url = new String("ldap://" + host + ":" + port); 

  String user = userName.indexOf(domain) > 0 ? userName : userName + domain; 

  Hashtable env = new Hashtable(); 

  DirContext ctx; 

  env.put(Context.SECURITY_AUTHENTICATION, "simple"); 

  env.put(Context.SECURITY_PRINCIPAL, user); //不带邮箱后缀名的话,会报错,具体原因还未探究。高手可以解释分享。 

  env.put(Context.SECURITY_CREDENTIALS, password); 

  env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory"); 

  env.put(Context.PROVIDER_URL, url); 

  try { 

  ctx = new InitialDirContext(env); 

  ctx.close(); 

  System.out.println("验证成功!"); 

  } catch (NamingException err) { 

  err.printStackTrace(); 

  System.out.println("验证失败!"); 

  } 

  } 

  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息