`
tanglong8848
  • 浏览: 71139 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JAVA 验证AD域名登陆

 
阅读更多
/**
     * 使用java连接AD域
     * @date 2015-1-26
     * @throws 异常说明
     * @param host 连接AD域服务器的IP
     * @param post AD域服务器的端口
     * @param username 用户名
     * @param password 密码
     * @return Integer 1 success 、0 false 、 -1 exception  
     */
    public static Integer connectAD(String host,String post,String username,String password) {
        DirContext ctx=null;
        int isLogin = 0;
        Hashtable<String,String> HashEnv = new Hashtable<String,String>();
        HashEnv.put(Context.SECURITY_AUTHENTICATION, "simple"); // LDAP访问安全级别(none,simple,strong)
        HashEnv.put(Context.SECURITY_PRINCIPAL, username!=null?username:""); //AD的用户名
        HashEnv.put(Context.SECURITY_CREDENTIALS, password!=null?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);//默认端口389
        try {
        	if(password!=null&&!password.equals("")){
	            ctx = new InitialDirContext(HashEnv);//初始化上下文
	            //System.out.println("身份验证成功!");
	            isLogin = 1;
        	}else{
        		//System.out.println("身份验证失败!");
        		isLogin = 0;//没有输入密码属于身份失败
        	}
            
        } catch (AuthenticationException e) {
            //System.out.println("身份验证失败!");
            e.printStackTrace();
            isLogin = 0;
        } catch (javax.naming.CommunicationException e) {
            //System.out.println("AD域连接失败!");
            e.printStackTrace();
            isLogin = -1;
        } catch (Exception e) {
            //System.out.println("身份验证未知异常!");
            e.printStackTrace();
            isLogin = -1;
        } finally{
            if(null!=ctx){
                try {
                    ctx.close();
                    ctx=null;
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        return isLogin;
    }

分享到:
评论

相关推荐

    Java-AD域认证实现

    打包命令为:mvn clean package Jar包运行命令为:java -jar C:\Users\z00459km\Desktop\demo-0.0.1-SNAPSHOT.jar 亲测AD域认证通过,内容包含两种认证信息写法。

    JAVA ldap AD 域 免证书 查询 修改 删除 新增 启用 禁用 修改密码

    在这篇文章中,我们将探讨使用 JAVA 实现 LDAP 的 AD 域免证书查询、修改、删除、新增、启用、禁用和修改密码的操作。 首先,让我们了解什么是 LDAP 和 AD 域。LDAP(Lightweight Directory Access Protocol)是一...

    验证AD域账号登陆,获取AD域用户列表,获取用户邮箱

    验证AD域账号登陆,获取AD域用户列表,获取用户邮箱,修改密码等AD域操作

    Java AD域插入用户和密码修改

    在开发过程中,可以使用Apache Directory Studio这样的工具进行调试和验证,它提供了图形化的界面,方便查看和管理AD域对象。同时,理解AD域的架构和目录结构也是成功实现这些功能的关键。 总的来说,Java AD域插入...

    java实现AD域认证

    - 在 Java Web 应用程序中创建一个“AD 域配置页面”,输入 AD 服务器的 IP 地址、端口号及域名等信息。 - 将这些配置信息保存到数据库或 XML 文件中,以便后续使用。 2. **编写认证代码** ```java public int...

    AD域单点登陆NTLM

    在IT领域,特别是企业网络管理中,Active ...在实际开发过程中,需要对AD域架构有深入理解,熟悉Java编程以及相关的身份验证机制。提供的资源,包括JAR包、DEMO和文档,都是为了简化这个过程,帮助开发者快速实现功能。

    JAVA对接AD域集成

    在Java开发中,"JAVA对接AD域集成"指的是将Java应用程序与Active Directory (AD) 域服务进行整合,以实现用户身份验证、权限管理等功能。以下是对代码片段中的关键知识点的详细解释: 1. **LDAP (轻量级目录访问...

    cas集成AD域

    CAS(Central Authentication Service)是...文档“cas集成验证AD中用户名密码实现一键登录.docx”可能包含了详细的配置示例和指南,而“反编译小工具”可能是用于查看或修改CAS服务器部署后的代码或配置的辅助工具。

    java通过LDAP验证Active Directory服务

    ### Java通过LDAP验证Active Directory服务 #### 一、概述 在现代企业的IT环境中,集中式身份验证和权限管理系统变得越来越重要。其中,Active Directory (AD) 和 Lightweight Directory Access Protocol (LDAP) ...

    java使用ldap修改ad域用户密码.pdf

    * 一台安装 Active Directory 的服务器,域名为 security.boco。 * 一台安装证书服务(需安装企业根证书)的服务器,加入 security 域中。 * 一台安装 Java 应用服务器,不需要加入 security 域中。 4. 安装步骤 ...

    页面AD用户自动登录程序

    后端服务器通常使用支持LDAP的库,如Python的ldap3或Java的UnboundID LDAP SDK,来连接到AD服务器并执行身份验证。服务器会验证提交的用户名和域名是否存在于AD目录中,以及对应的密码是否正确(尽管密码通常不通过...

    找到一个使用软件的方法实现AD功能.rar_AD转换_软件实现AD

    AD还支持DNS(域名系统),使网络资源可以通过易记的名称访问,而不是IP地址。 在标题和描述中提到的“软件实现AD转换”,可能是指利用特定的软件工具来模拟或扩展AD的功能,或者是在非Windows环境中实现类似AD的...

    AD安装配置指南

    - **目标**:通过Java的JNDI技术结合LDAP协议操作Active Directory(AD),实现与OA系统的用户和密码同步,达到单点登录的目的。 - **环境**:基于Windows 2000 Server Active Directory。 #### 二、M$ Active ...

    LDAP访问AD

    1. **服务器地址**:LDAP服务器的IP地址或域名,通常是AD域控制器的地址。 2. **端口号**:默认情况下,LDAP使用389端口进行未加密通信,而使用636端口进行SSL/TLS加密通信。 3. **基DN(Distinguished Name)**:AD...

    以诺行车管家.apk 分析报告1

    - MD5值:`c5cfd6b3d05d1df98ff66b4af7619ecc`,SHA1值:`f6da7e4ad536a2ccc7024cd7a669fa96e309c824`,SHA256值:`d23ec0472553c9debf13fddd5f75e878fa6452dea5c70ae8dd961208265185de`。 - 这些哈希值可以用于...

    全方面介绍父子域搭建及共享文件操作.doc

    在Active Directory(AD)环境中,父域是主域,可以包含多个子域,子域则是父域的一部分,继承了父域的某些属性。搭建父子域主要涉及以下几个步骤: 1. **搭建父域**: - 配置父域服务器的IP和计算机名。 - 安装...

    数据访问技术系列课程(3):处理连接字符串的安全性

    课程中可能涵盖如何在不同编程语言(如C#、Java)和数据库平台(如SQL Server、MySQL)中创建和管理安全的连接字符串,以及如何利用各种框架和库提供的功能来提高安全性。通过实例演示,学习者将了解到如何在实际...

    Esra.apk 分析报告1

    安全相关的MD5、SHA1和SHA256哈希值分别为8d772b8b506d8b017eb2ca6e3e883597、ef5b117127ad90ce751ae49c429c0b5bf0c8a516和970b127a7c29a6c0d2e44f384b0f4f5b4862d6...,这些哈希值可用于验证文件的完整性和防止篡改...

    一个优秀IT开发人员必看的技术文档

    - 列出当前AD域上可用的BPA模块ID,并选择ADDS模块ID。 - 获取扫描结果并转换为HTML格式进行报告。 二、OSSIM系统主机漏洞扫描 OSSIM(Open Source Security Information Management)是一个开源的安全信息和事件...

Global site tag (gtag.js) - Google Analytics