1 、AD域最简单的理解方式是:如将用户账户密码放在域中进行集中的权限管理和认证,共享系统中的资源信息。
中石化的项目目前都要求使用AD域账户登陆所有系统,因此就会碰到java进行AD域认证。
2、 目前遇到AD认证有两种解决方案:
需要下载相关jar包,代码直接贴上来:
a、若抛出异常,则可能是账户密码错误,服务器内部错误等状况。
UniAddress dc = UniAddress.getByName("192.168.21.111"); //对IP进行更换即可
jcifs.smb.NtlmPasswordAuthentication auth = new jcifs.smb.NtlmPasswordAuthentication("192.168.21.111", username, password);
jcifs.smb.SmbSession.logon(dc, auth);
b、第二种情况
String host = "10.208.1.2"; // AD服务器
String port = "389"; // AD端口
String url = new String("ldap://" + host + ":" + port);
Hashtable HashEnv = new Hashtable();
String adminName = "conn@sinopec.ad"; //连接AD域的账户
String adminPassword = "conn123"; //连接AD域的密码