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

java连接微软AD进行用户验证

阅读更多
import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

/**
 * @author winter
 *
 */
public class Test {
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		String userName = "xxxxx";   //用户名称
		String password = "xxxxx";   //密码
		
		String host = "xxx.xxx.xxx.xxx";  //AD服务器
		String port = "389";              //端口
		String domain = "@xxx.com";    //邮箱的后缀名
		
		String url = new String("ldap://" + host + ":" + port);
		String user = userName.indexOf(domain) > 0 ? userName : userName + domain;
		
		Hashtable<String, String> env = new Hashtable<String, String>();
		DirContext ctx;

		env.put(Context.SECURITY_AUTHENTICATION, "simple");
		env.put(Context.SECURITY_PRINCIPAL, user); //不带邮箱后缀名的话,会报错,具体原因还未探究。高手可以解释分享。
		env.put(Context.SECURITY_CREDENTIALS, password);
		
		env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
		env.put(Context.PROVIDER_URL, url);

		try {
		    ctx = new InitialDirContext(env);
		    ctx.close();
		    System.out.println("验证成功!");
		} catch (NamingException err) {
		    err.printStackTrace();
		    System.out.println("验证失败!");
		}
	}
}


以上代码验证通过。
分享到:
评论

相关推荐

    java连接AD进行用户登陆

    ### Java 连接 Active Directory 进行用户登录验证的知识点 #### 一、概述 在企业环境中,Active Directory (AD) 是一种广泛使用的目录服务,它可以帮助管理组织内的用户、设备和其他资源。对于需要集成 AD 的 ...

    java验证AD域用户登录

    10. **测试与部署**: 完成AD验证功能后,需要在测试环境中进行充分的测试,确保在不同环境和条件下都能正常工作。在生产环境中部署时,应确保所有配置信息的安全存储和传递。 以上就是关于Java验证AD域用户登录涉及...

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

    在IT行业中,尤其是在企业网络管理领域,Active Directory(AD)域是微软提供的一个关键服务,用于集中管理和控制网络中的用户账户、计算机和其他资源。本文将深入探讨如何利用Java编程语言来实现AD域用户插入和密码...

    LDAP实现AD域账号验证 - Java/SpringBoot

    在IT行业中, Lightweight Directory Access Protocol (LDAP) 是一种用于存储和检索目录信息的标准协议,而Active Directory (AD) 是微软提供的目录服务,广泛应用于企业环境中进行用户身份验证和权限管理。Java和...

    JAVA修改AD域密码_免证书

    Java开发人员经常使用Java Naming and Directory Interface (JNDI)来与AD进行交互。在本文中,我们将深入探讨如何使用Java JNDI来修改AD域密码,并重点讲解如何实现免SSL验证的方式。 首先,让我们了解JNDI。JNDI是...

    AD域单点登陆NTLM

    3. **用户验证**:将用户输入的凭证与AD服务器进行验证,通过NTLM协议进行身份确认。 4. **SSO实现**:验证成功后,用户可以无感知地访问其他系统,因为已经通过AD域认证。 DEMO包通常包含一个示例程序,展示了如何...

    ldap 连接 AD

    本文将深入探讨如何使用Java进行LDAP与AD的连接,并通过提供的源代码示例进行解析。 首先,让我们了解LDAP与AD的基本概念。LDAP是一种应用层协议,它使用TCP/IP来查找和检索分布式目录服务中的信息。这些信息可以...

    JAVA对接AD域集成.rar

    通过Java与AD域进行集成,开发者可以构建安全、高效的企业级应用程序,确保只有经过验证的用户才能访问特定资源。 首先,了解基本概念: 1. LDAP(Lightweight Directory Access Protocol):是一种轻量级目录访问...

    JAVA JNDI免证书修改AD域密码.zip

    JNDI(Java Naming and Directory Interface)则是Java平台上的一个标准接口,允许Java应用程序访问各种命名和目录服务,如LDAP(轻量级目录访问协议),而AD通常通过LDAP接口进行操作。 在这个主题中,"免证书"指...

    页面AD用户自动登录程序

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

    sso.rar_IIS ad java_iis_sso_sso IIS_单点登录

    5. **时序图**:"sso.png" 文件很可能是描述SSO流程的时序图,它会展示从用户请求开始,通过AD验证,再到IIS和J2EE应用之间交互的详细步骤。时序图会包括各个参与者(如用户、浏览器、IIS、AD服务器、J2EE应用)以及...

    cas集成AD域

    AD域是微软Windows Server操作系统中的一个组件,它提供了身份验证、授权和目录服务,允许网络中的设备和用户进行身份验证,并存储和管理用户账户、计算机账户和其他资源的信息。在AD域中,每个用户都有一个唯一的...

    LDAP Weblogic和AD之间的通信

    “Java访问AD.txt”可能是一个详细的指南,介绍如何使用Java代码与AD进行交互,包括创建连接、执行搜索、修改用户属性等。 **密码认证** “Using LDAP for Password Authentication.txt”可能讨论了如何使用LDAP...

    domino_ldap.rar_AD联合验证_Domino_Tomcat_sso_domino_domino_ldap

    在这里,Tomcat可能被用作处理HTTP请求,并调用Java代码来执行AD验证逻辑。 6. **Domino LDAP(Lightweight Directory Access Protocol)**: LDAP是一种协议,用于访问和操作目录服务,如AD。Domino服务器可以...

    修改ad域密码及新增账号demo.zip

    在IT领域,特别是企业网络管理中,Active Directory(AD)是一种广泛使用的目录服务,由微软开发,用于管理和组织网络资源。AD域则是AD服务的核心组成部分,它提供了集中式的身份验证和授权机制。在这个"修改AD域...

    Office365-Java-Connect:从 Java 应用程序到 Office 365 和 Outlook API 的身份验证示例

    此示例演示了如何从 Java 应用程序和调用一些 API 对 Office 365 用户进行身份验证。 此示例使用获取验证令牌,然后使用它们调用特定的 API。 详细地说,该示例执行以下操作: 创建访问和刷新令牌以调用 Azure AD ...

    ldap 访问AD测试

    6. 单点登录(Single Sign-On, SSO):"JAVA代码操作MS AD实现单点登录.txt"可能包含实现SSO的Java代码示例,SSO允许用户只需一次登录即可访问多个应用,简化了用户认证流程。 7. 用户账户控制(UserAccountControl...

Global site tag (gtag.js) - Google Analytics