`
aa00aa00
  • 浏览: 331328 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

JAVA 实现AD验证

 
阅读更多

package com.wanda.sso.client.servlet;

import java.util.HashMap;
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 AdTools {

 /**
  * AD 验证
  *
  * @param userName
  * @param passWord
  * @return
  */
 public static boolean adTrueOrFalse(String userName, String passWord) {
  String url = new String("ldap://" + SsoClientUtils.AD_SERVER_IP + ":"
    + SsoClientUtils.AD_SERVER_PORT);
  String user = userName.indexOf(SsoClientUtils.AD_SERVER_DOMAIN) > 0 ? userName
    : userName + SsoClientUtils.AD_SERVER_DOMAIN;
  Hashtable env = new Hashtable();
  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("验证成功!");
   return true;
  } catch (NamingException err) {
   err.printStackTrace();
   // System.out.println("验证失败!");
   return false;
  }
 }

 // 使用LDAP验证密码
 public static void main(String[] args) {
  String userName = "xueqiang"; // 用户名称
  String passwd = "123456";
  String host = "10.0.4.26"; // AD服务器
  String port = "389"; // 端口
  String domain = "@wanda-dev.cn"; // 邮箱的后缀名
  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 = null;
  env.put(Context.SECURITY_AUTHENTICATION, "simple");
  env.put(Context.SECURITY_PRINCIPAL, user);
  if ("".equals(passwd.trim())) {
   passwd = null;
   System.out.println("密码不能为空!!");
  }
  env.put(Context.SECURITY_CREDENTIALS, passwd);
  env.put(Context.INITIAL_CONTEXT_FACTORY,
    "com.sun.jndi.ldap.LdapCtxFactory"); // LDAP工厂类
  env.put(Context.PROVIDER_URL, url);
  try {
   ctx = new InitialDirContext(env);
   ctx.close();
   System.out.println("验证成功!!");
  } catch (NamingException e) {
   e.printStackTrace();
   System.out.print("验证失败!!");
  }
 }
}

分享到:
评论
1 楼 huahoucun 2014-04-11  
passwd = null;
env.put(Context.SECURITY_CREDENTIALS, passwd);
  env.put(Context.INITIAL_CONTEXT_FACTORY,
    "com.sun.jndi.ldap.LdapCtxFactory"); // LDAP工厂类
  env.put(Context.PROVIDER_URL, url);
  try {
   ctx = new InitialDirContext(env);
   ctx.close();
   System.out.println("验证成功!!");
  } catch (NamingException e) {
   e.printStackTrace();
   System.out.print("验证失败!!");
  }
passwd 为 null 时去域里头验证 能否通过呢?

相关推荐

    java验证AD域用户登录

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

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

    下面我们将深入探讨如何使用Java和SpringBoot实现基于LDAP的AD域账号验证。 首先,我们需要了解LDAP的基本结构。LDAP目录通常采用树形结构,其中包含多个条目(entries),每个条目都有唯一的DN(Distinguished ...

    Java-AD域认证实现

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

    java实现AD域认证

    ### Java 实现 AD 域认证详解 #### 一、AD域认证简介 Active Directory (AD) 是一种基于 Windows Server 的目录服务,它允许管理员管理网络中的用户、组和其他资源。AD域认证则是指通过AD服务对用户身份进行验证的...

    java连接AD进行用户登陆

    本文将详细介绍如何使用 Java 实现与 Active Directory 的连接以及进行用户登录验证的过程。 #### 二、关键概念与术语解释 1. **Active Directory (AD)**:一种由微软开发的目录服务,用于Windows Server操作系统...

    JAVA修改AD域密码_免证书

    在本文中,我们将深入探讨如何使用Java JNDI来修改AD域密码,并重点讲解如何实现免SSL验证的方式。 首先,让我们了解JNDI。JNDI是Java平台的一个接口,它提供了一组API,允许开发者查找和绑定网络资源,如DNS记录、...

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

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

    kerberos的java实现

    Java语言实现的Kerberos允许开发者在Java应用中集成这种强大的安全机制。 **Java与Kerberos的结合** Java中的Kerberos支持主要体现在Java的`javax.security.auth.kerberos`包中,提供了与Kerberos协议交互的一系列...

    JAVA使用Ldap操作AD域的方法示例

    总的来说,Java通过Ldap操作AD域涉及网络连接、身份验证、目录查询以及可能的SSL安全通信。理解这些概念和API的使用是实现AD域集成的关键。通过以上介绍和示例代码,你应该能够开始编写自己的AD域操作功能。记得在...

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

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

    AD域单点登陆NTLM

    NT LAN Manager(NTLM)是一种微软实现的身份验证协议,常用于Windows环境下的AD域身份验证。下面我们将详细探讨如何在Java环境中利用NTLM协议集成AD域进行登录,并了解相关文件的作用。 首先,让我们理解NTLM协议...

    java操控AD域源码

    Java操控AD域源码主要涉及的是使用Java编程语言与Active Directory(AD)域进行交互,实现AD用户账户的管理操作,包括添加(Add)、删除(Delete)、修改(Update)和查询(Check)等功能。在企业环境中,AD域是用于...

    JAVA通过LDAP+SSL(证书)实现用户和组织(部门)增删改查.zip

    本文将深入探讨如何使用Java通过LDAP(轻量级目录访问协议)和SSL(安全套接层)来实现用户和组织(部门)的增删改查操作,并结合证书确保通信的安全性。这些功能通常用于大型企业的用户管理,例如Active Directory...

    java ad域操作

    Java作为跨平台的编程语言,提供了多种库和工具来与AD进行交互,实现用户验证、权限管理等功能。本文将深入探讨如何使用Java进行AD域操作。 首先,我们需要了解Java中的JNDI(Java Naming and Directory Interface...

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

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

    JAVA对接AD域集成.rar

    Java对接AD域集成是企业级应用中常见的需求,主要用于实现用户身份验证和权限管理。AD(Active Directory)是微软提供的一种目录服务,用于管理和存储有关网络对象的信息,如用户、计算机、组等。通过Java与AD域进行...

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

    6. 软件开发:如果你打算编写自己的AD客户端或服务,你需要掌握相应的编程语言(如C、Python、Java等)以及相关的开发库和API。 7. 安全性:理解AD的安全模型,包括权限分配、审核和日志记录,以确保网络安全和数据...

    java通过LDAP验证Active Directory服务

    为了通过Java实现对Active Directory的验证,我们可以使用JNDI API(Java Naming and Directory Interface),它提供了与不同目录服务(如LDAP)交互的接口。 下面是一段示例代码,展示了如何使用Java进行验证: `...

    JAVA对接AD域集成

    在Java开发中,"JAVA对接AD域集成"指的是将Java应用程序与Active Directory (AD) 域服务进行整合,以实现用户身份验证、权限管理等功能。以下是对代码片段中的关键知识点的详细解释: 1. **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服务器可以...

Global site tag (gtag.js) - Google Analytics