import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
/**
* java验证AD域用户登录
* 传入用户名(userName)和密码(password)进行验证,验证成功返回用户名
* @author guob
*
*/
public class TestAD {
public String check(String userName,String password) {
String host = "10.156.129.72"; // AD服务器IP(一共2个AD域服务器,备份的效果,另一个是10.156.129.95)
String port = "389"; // 端口
String DN_OU = "OU=Capitaland China,OU=CCH,DC=capitaland,DC=com,DC=cn" ;
String DN_CN = "CN="+userName;
String url = new String("ldap://" + host + ":" + port);
Hashtable env = new Hashtable();
DirContext ctx;
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
//env.put(Context.SECURITY_AUTHENTICATION, "none");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.PROVIDER_URL, url);
//env.put(Context.SECURITY_PRINCIPAL, DN_CN+","+DN_OU);
env.put(Context.SECURITY_PRINCIPAL, userName);
env.put(Context.SECURITY_CREDENTIALS, password);
try {
ctx = new InitialDirContext(env);// 初始化上下文
System.out.println("认证成功");
ctx.close();
return userName; //验证成功返回name
} catch (javax.naming.AuthenticationException e) {
System.out.println("认证失败");
System.out.println("e.getExplanation():"+e.getExplanation());
System.out.println("e.getMessage():"+e.getMessage());
return "";
}catch (Exception e) {
System.out.println("认证出错:" + e);
return "";
}
}
public static void main(String[] args) {
TestAD T = new TestAD();
System.out.println("Result:"+T.check("lcms", "11111111"));
System.out.println("Result:"+T.check("shicn4", "P@ssw0rd"));
System.out.println("Result:"+T.check("shicn4", "wertyuio"));
}
}
相关推荐
验证AD域用户登录 ,传入用户名(userName)和密码(password)进行验证。
验证AD域账号登陆,获取AD域用户列表,获取用户邮箱,修改密码等AD域操作
打包命令为:mvn clean package Jar包运行命令为:java -jar C:\Users\z00459km\Desktop\demo-0.0.1-SNAPSHOT.jar 亲测AD域认证通过,内容包含两种认证信息写法。
java JNDI方式修改AD域密码 免ssl验证方式修改AD域密码 LDAP SSL 证书 javassl 很实用的一段代码,免去了复杂的证书操作过程。
LDAP实现AD域账号验证
这是用java连接window server 的Acitive Directory进行用户登陆验证的代码,里面用的是用户名的登陆名进行验证,也可以是用户的其他信息(如邮箱等)进行验证。
Jespa是一个“Security Provider”的组件库,提供各类安全验证功能,如凭据认证,创建帐户,设置密码和其它方面与安全有关的...Jespa适合Win7以上AD环境下的域用户集成,注意Jespa是付费组件,需至IOPLEX的官网去下载。
书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高...
选择AD作为身份验证类型时,这是必需的。 2.1。 设置“ LDAP_TYPE” LDAP的有效LDAP ,Active Directory的无/空 2.2。 设置“ LDAP URL” 有时,这将是“ ldap://test.com:389”并直接进入ldap端口。 在多域...
Windows验证很简单用于简单应用它根据当前域Active Directory(AD)来验证用户身份用户组被当作角色来进 行基于角色验证用户组角色可能不像应用需要那么细化所以它们必须存在另个数据库或自己AD中 ;Windows验证不能...
quesle-tool-ldap是一个使用spring-ldap连接AD域的实现;quesle-tool-editor是对UEditor的Java开发,在开发的过程中,需要对UEditor进行部分的修改,详细请看quesle-tool-editor目录下的README.md的内容;
13.什么是变量的作用域 14.如何强制要求显式声明变量 15.如何保留或消除过程调用对变量的影响 16.如何创建和调整动态数组 18.如何计算中英文混合字符串的长度 19.如何判断字符串是否以指定字符串开头或结尾 20.如何...
那么该程序会运行默认异常处理程序,退出JAVA,若Applet或基于GUI的APP,当一个异常未被“捕获”,GUI在运行默认异常处理程序依然会显示,而且用户使用的GUI处于一个不稳定的状态))<BR>JAVA代码中:1、可能出现...
除了匿名访问用户(Anonymous)外,IIS中的FTP将使用Windows 2000自带的用户库(可在“开始→程序→管理工具→计算机管理”中找到“用户”一项来进行用户库的管理)。 最后,关键一步还有就是将你的电脑变为网络中的...
bmob用户验证demo.js bmob示例-对象的增删改查.js caiji.js Calender.js canvas画正方形.js ceshi.js click控件获取坐标位置.js ColorMatrix处理图片↘颜色矩阵.js ColorMatrix颜色矩阵的用法.js common(1...
说明: 指定数据库的默认语言, 该语言将用于消息, 日期和月份名, AD, BC, AM 和 PM 的符号, 以及默认的排序机制。可支持的语言包括英语, 法语和日语等等。 值范围: 任何有效的语言名。 默认值: 根据操作系统而定 ...