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"));
}
}
相关推荐
Java验证AD域用户登录是企业级应用中常见的一种身份验证方式,主要用于确保只有授权的用户才能访问特定的系统或服务。AD(Active Directory)域是由微软Windows Server操作系统提供的目录服务,用于集中管理用户账户...
本文将深入探讨如何利用Java编程语言来实现AD域用户插入和密码修改操作。这些功能对于自动化IT运维流程至关重要,特别是对于大型企业或组织来说,能显著提高效率。 首先,Java通过JNDI(Java Naming and Directory ...
验证AD域账号登陆,获取AD域用户列表,获取用户邮箱,修改密码等AD域操作
AD 域(Active Directory Domain)是 Microsoft 提供的一种目录服务,用于存储和管理用户、组、计算机和其他对象的信息。 在这篇文章中,我们将使用 JAVA 实现 LDAP 的 AD 域免证书查询、修改、删除、新增、启用、...
打包命令为:mvn clean package Jar包运行命令为:java -jar C:\Users\z00459km\Desktop\demo-0.0.1-SNAPSHOT.jar 亲测AD域认证通过,内容包含两种认证信息写法。
总的来说,Java通过Ldap操作AD域涉及网络连接、身份验证、目录查询以及可能的SSL安全通信。理解这些概念和API的使用是实现AD域集成的关键。通过以上介绍和示例代码,你应该能够开始编写自己的AD域操作功能。记得在...
在本文中,我们将深入探讨如何使用Java JNDI来修改AD域密码,并重点讲解如何实现免SSL验证的方式。 首先,让我们了解JNDI。JNDI是Java平台的一个接口,它提供了一组API,允许开发者查找和绑定网络资源,如DNS记录、...
### Java 连接 Active Directory 进行用户登录验证的知识点 #### 一、概述 在企业环境中,Active Directory (AD) 是一种广泛使用的目录服务,它可以帮助管理组织内的用户、设备和其他资源。对于需要集成 AD 的 ...
下面我们将深入探讨如何使用Java和SpringBoot实现基于LDAP的AD域账号验证。 首先,我们需要了解LDAP的基本结构。LDAP目录通常采用树形结构,其中包含多个条目(entries),每个条目都有唯一的DN(Distinguished ...
AD域认证则是指通过AD服务对用户身份进行验证的过程。 #### 二、Java 实现 AD 认证的方法 Java 中可以通过利用标准的 LDAP (Lightweight Directory Access Protocol) 协议与 AD 服务器交互来实现 AD 认证。Java 的...
总结起来,Java通过JNDI和相关的库提供了强大的能力来操作AD域,包括连接、查询、读写属性、用户认证、对象的创建与删除等。在实际开发中,应确保遵循最佳实践,确保代码的健壮性和安全性。理解并熟练掌握这些概念和...
Java操控AD域源码主要涉及的是使用Java编程语言与Active Directory(AD)域进行交互,实现AD用户账户的管理操作,包括添加(Add)、删除(Delete)、修改(Update)和查询(Check)等功能。在企业环境中,AD域是用于...
总的来说,通过Java和NTLM协议实现AD域的单点登录,能够提供安全、便捷的用户体验,同时减轻了IT部门的管理负担。在实际开发过程中,需要对AD域架构有深入理解,熟悉Java编程以及相关的身份验证机制。提供的资源,...
Java对接AD域集成是企业级应用中常见的需求,主要用于实现用户身份验证和权限管理。AD(Active Directory)是微软提供的一种目录服务,用于管理和存储有关网络对象的信息,如用户、计算机、组等。通过Java与AD域进行...
AD域是微软Windows Server操作系统中的一个组件,它提供了身份验证、授权和目录服务,允许网络中的设备和用户进行身份验证,并存储和管理用户账户、计算机账户和其他资源的信息。在AD域中,每个用户都有一个唯一的...
Java 使用 LDAP 修改 AD 域用户密码 本文档主要介绍了如何使用 Java 通过 LDAP 协议修改 Active Directory(AD)域用户密码的详细步骤。下面将对标题、描述、标签和部分内容进行详细解释。 一、标题和描述 标题...
在Java开发中,"JAVA对接AD域集成"指的是将Java应用程序与Active Directory (AD) 域服务进行整合,以实现用户身份验证、权限管理等功能。以下是对代码片段中的关键知识点的详细解释: 1. **LDAP (轻量级目录访问...
2. **A如何向B提供Secret**:验证过程中,声称是A的实体如何将其持有的秘密信息安全地传递给验证方B。 3. **B如何识别Secret**:验证方B如何确认接收到的秘密信息确实是正确的。 基于以上三点,Kerberos认证机制的...
总之,通过Spring Boot 2.x和LDAP的集成,我们可以构建出高效、安全的企业级应用,实现与AD域控制器的无缝对接,从而方便地管理和同步用户及组织信息。这对于大型企业来说,是提高IT效率、保证数据安全的关键步骤。