使用java连接AD域,验证账号密码是否正确
- eb项目中有时候客户要求我们使用ad域进行身份确认,不再另外做一套用户管理系统。其实客户就是只要一套账号可以访问所有的OA,CRM等办公系统。
 这就是第三方验证。一般有AD域,Ldap,Radius,邮件服务器等。最常用的要数AD域了。因为window系统在国内占据了大量的江山。做起来也很方便。
 我这篇文章就是写,如何用java去实现AD域的身份验证。好了,直接看代码吧:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667packagecom.test;importjava.util.Hashtable;importjavax.naming.AuthenticationException;importjavax.naming.Context;importjavax.naming.directory.DirContext;importjavax.naming.directory.InitialDirContext;/*** 使用java连接AD域,验证账号密码是否正确* @author Herman.Xiong* @date 2014-12-23 下午02:07:26* @version V3.0* @since jdk 1.6,tomcat 6.0*/publicclassAdTest {/*** 使用java连接AD域* @author Herman.Xiong* @date 2014-12-23 下午02:24:04* @return void* @throws 异常说明* @param host 连接AD域服务器的ip* @param post AD域服务器的端口* @param username 用户名* @param password 密码*/publicstaticvoidconnect(String host,String post,String username,String password) {DirContext ctx=null;Hashtable<string,string> HashEnv =newHashtable<string,string>();HashEnv.put(Context.SECURITY_AUTHENTICATION, simple);// LDAP访问安全级别(none,simple,strong)HashEnv.put(Context.SECURITY_PRINCIPAL, username);//AD的用户名HashEnv.put(Context.SECURITY_CREDENTIALS, password);//AD的密码HashEnv.put(Context.INITIAL_CONTEXT_FACTORY,com.sun.jndi.ldap.LdapCtxFactory);// LDAP工厂类HashEnv.put(com.sun.jndi.ldap.connect.timeout,3000);//连接超时设置为3秒HashEnv.put(Context.PROVIDER_URL, ldap:// + host + : + post);// 默认端口389try{ctx =newInitialDirContext(HashEnv);// 初始化上下文System.out.println(身份验证成功!);}catch(AuthenticationException e) {System.out.println(身份验证失败!);e.printStackTrace();}catch(javax.naming.CommunicationException e) {System.out.println(AD域连接失败!);e.printStackTrace();}catch(Exception e) {System.out.println(身份验证未知异常!);e.printStackTrace();}finally{if(null!=ctx){try{ctx.close();ctx=null;}catch(Exception e) {e.printStackTrace();}}}}publicstaticvoidmain(String[] args) {AdTest.connect(10.10.2.116,389, herman@herman.com,123456);}}</string,string></string,string>代码到此结束了,看看运行效果吧:  
使用java连接AD域,验证账号密码是否正确的更多相关文章
- 使用java连接AD域,验证账号password是否正确
		web项目中有时候客户要求我们使用ad域进行身份确认,不再另外做一套用户管理系统.事实上客户就是仅仅要一套账号能够訪问全部的OA.CRM等办公系统. 这就是第三方验证.一般有AD域,Ldap,Radi ... 
- java连接AD域
		import org.springframework.boot.autoconfigure.SpringBootApplication; import java.util.Hashtable; imp ... 
- java修改AD域用户密码使用SSL连接方式
		正常情况下,JAVA修改AD域用户属性,只能修改一些普通属性, 如果要修改AD域用户密码和userAccountControl属性就得使用SSL连接的方式修改, SSL连接的方式需要操作以下步骤: 1 ... 
- java ssl 连接AD域
		1.安装证书服务和IIS服务,不需要启动asp.(其会在c盘生成一个crt文件)2.获取crt证书文件 windows 2003:文件位于系统盘根目录 windows 2008: 文件位于C:\Win ... 
- .net  修改AD域中的密码
		1.通过vs 2013 新建一个web站点(不是空项目),这个会带一下模板, 2.然后新建一个页面UpdatePassWord.aspx aspx页面内容: <%@ Page Title=&qu ... 
- AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作
		博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 Java 获取 AD 域用户, ... 
- SpringBoot注册登录(三):注册--验证账号密码是否符合格式及后台完成注册功能
		SpringBoot注册登录(一):User表的设计点击打开链接SpringBoot注册登录(二):注册---验证码kaptcha的实现点击打开链接 SpringBoot注册登录(三):注册 ... 
- eclipse 中main()函数中的String[] args如何使用?通过String[] args验证账号密码的登录类?静态的主方法怎样才能调用非static的方法——通过生成对象?在类中制作一个方法——能够修改对象的属性值?
		eclipse 中main()函数中的String[] args如何使用? 右击你的项目,选择run as中选择 run configuration,选择arguments总的program argu ... 
- AD 域服务简介(二)- Java 获取 AD 域用户
		博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 一.前言 先简单简单回顾上一篇 ... 
随机推荐
- hihoCode-1043-完全背包
			我们定义:best(i,x)代表i件以前的物品已经决定好选择多少件,并且在剩余奖券x的情况下的最优解. 我们可以考虑最后一步,是否再次选择i物品,在不超过持有奖券总额的情况下.上面的第二个式子的k是大 ... 
- 如何用纯 CSS 创作牛奶文字变换效果
			效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/MGNWOm 可交互视频教 ... 
- gpio/外设/控制器
			1.项目中所有的外设pad都是通过GPIO与控制器相连的.比如FSHC<=>gpio<=>flash 2.gpio类似多个 mux 集合. 3.对于与gpio相连的pad具体结 ... 
- python爬取博客圆首页文章链接+标题
			新人一枚,初来乍到,请多关照 来到博客园,不知道写点啥,那就去瞄一瞄大家都在干什么好了. 使用python 爬取博客园首页文章链接和标题. 首先当然是环境了,爬虫在window10系统下,python ... 
- poj2217 Secretary 后缀数组
			#include <iostream> #include <cstring> #include <string> #include <cstdio> u ... 
- BRVAH(让RecyclerView变得更高效)(1)
			本文来自网易云社区 作者:吴思博 对于RecyclerView, 我们重复编写着那一个又一个的列表界面,有的要分组,有的要添加广告头部.有的要不同类型item排列.等等需求,主要代码有大部分是重复的, ... 
- redux学习总结
			redux学习总结 *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !imp ... 
- Linux 指令的快捷键
- python3--__getattr__和__setattr__捕捉属性的一个引用
			__getattr__和__setattr__捕捉属性的一个引用 __getattr__方法是拦截属性点号运算.更确切地说,当通过对未定义(不存在)属性名称和实例进行点号运算时,就会用属性名称为字符串 ... 
- Django深入----django.db.transaction
			django 的事务: transaction.py atomic---原子性 def atomic(using=None, savepoint=True): # Bare decorator: @a ... 
