java ad 认证_Java实现AD域登录认证

package com.app;

import java.util.Hashtable;

import javax.naming.AuthenticationException;

import javax.naming.Context;

import javax.naming.directory.DirContext;

import javax.naming.directory.InitialDirContext;

public class AdLogin {

public static void main(String[] args) {

String userName = "username";//AD域认证,用户的登录UserName

String password = "";//AD域认证,用户的登录PassWord

String host = "xxx.xxx.xxx.xxx";//AD域IP,必须填写正确

String domain = "@xxx.xx";//域名后缀,例.@noker.cn.com

String port = "389"; //端口,一般默认389

String url = new String("ldap://" + host + ":" + port);//固定写法

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

+ domain;//网上有别的方法,但是在我这儿都不好使,建议这么使用

Hashtable env = new Hashtable();//实例化一个Env

DirContext ctx = null;

env.put(Context.SECURITY_AUTHENTICATION, "simple");//LDAP访问安全级别(none,simple,strong),一种模式,这么写就行

env.put(Context.SECURITY_PRINCIPAL, user); //用户名

env.put(Context.SECURITY_CREDENTIALS, password);//密码

env.put(Context.INITIAL_CONTEXT_FACTORY,

"com.sun.jndi.ldap.LdapCtxFactory");// LDAP工厂类

env.put(Context.PROVIDER_URL, url);//Url

try {

ctx = new InitialDirContext(env);// 初始化上下文

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();

}

}

}

}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值