qq_31200607的博客

学习积累

使用AD域做登陆验证

        今天看代码看到登陆时使用了AD域验证的方式来验证用户名密码,故学习记录一下。

        AD域是用来集中管理用户的,比如我们电脑上就有一个域设置,他可以用来设置我们的电脑允许和不允许的操作,比如不能安装乱七八糟软件什么的。只需要在域控制器上进行一道设置,就可以批量管理许多用户的设置,十分便捷。至于用AD域来验证登陆,就是我们的程序并不知道任何用户名密码,也不保存,每次登录时将用户名密码送到AD域校验一下就OK了。

        看下代码:

 public  boolean ADsUserCA(String username,String password) {

    	Hashtable env = new Hashtable();
		env.put(Context.INITIAL_CONTEXT_FACTORY, INITCTX);  //驱动
		env.put(Context.PROVIDER_URL, LDAP_HOST);         //主机地址和端口
		env.put(Context.SECURITY_AUTHENTICATION, "simple"); // 使用简单认证来认证用户
		env.put(Context.SECURITY_PRINCIPAL, username);
		env.put(Context.SECURITY_CREDENTIALS, password);
	
    	try {
			ctx = new InitialDirContext(env);
			 try {
		            ctx.close();
		            System.out.println("CA OK");
		        } catch (NamingException ex) {
		            ex.printStackTrace();
		        }
			
			return true;
		}catch (javax.naming.AuthenticationException e) {
			e.printStackTrace();
            System.out.println("CA error1");
           return false;
		}
		  catch(Exception e){
			  e.printStackTrace();
			  System.out.println("CA error2");
	          return false;
		  }
    }
        其中的域服务器地址、端口、用户等等,都是先前条件,这段验证完毕后将结果返回给前端,就OK了,一个简单的AD域验证就是这样了。
阅读更多
个人分类: java
上一篇关于上篇https想到的扩展
下一篇关于JDBC
想对作者说点什么? 我来说一句

AD域登录实现

2014年09月02日 2KB 下载

没有更多推荐了,返回首页

关闭
关闭