`
s103y
  • 浏览: 116063 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Idap AD 验证用户名和密码

阅读更多

import java.util.HashMap; 

import java.util.Hashtable; 

import java.util.Map; 
import javax.naming.Context; 
import javax.naming.NamingEnumeration; 
import javax.naming.NamingException; 
import javax.naming.directory.Attribute; 
import javax.naming.directory.Attributes; 
import javax.naming.directory.SearchControls; 
import javax.naming.directory.SearchResult; 
import javax.naming.ldap.InitialLdapContext; 
import javax.naming.ldap.LdapContext; 
public class ADAuthenticator {
   

  private String domain; 
  private String ldapHost; 
  private String searchBase; 
  public ADAuthenticator() 
   { 

   this.domain = "rd.**.com"; 

      this.ldapHost = "ldap://**.rd.**.com"; 

       this.searchBase = "dc=rd,dc=ge**,dc=com"; 

     } 

     

     public ADAuthenticator(String domain, String host, String dn) 

     { 

       this.domain = domain; 

       this.ldapHost = host; 

       this.searchBase = dn; 

     } 

     

     public Map authenticate(String user, String pass) 

     { 

       String returnedAtts[] ={ "sn", "givenName", "mail" }; 

       String searchFilter = "(&(objectClass=user)(sAMAccountName=" + user + "))"; 

     

       //Create the search controls 

       SearchControls searchCtls = new SearchControls(); 

       searchCtls.setReturningAttributes(returnedAtts); 

     

       //Specify the search scope 

       searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE); 

     

       Hashtable env = new Hashtable(); 

       env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 

       env.put(Context.PROVIDER_URL, ldapHost); 

       env.put(Context.SECURITY_AUTHENTICATION, "simple"); 

       env.put(Context.SECURITY_PRINCIPAL, user + "@" + domain); 

       env.put(Context.SECURITY_CREDENTIALS, pass); 

     

       LdapContext ctxGC = null; 

     

       try

       { 

         ctxGC = new InitialLdapContext(env, null); 

         //Search objects in GC using filters 
         NamingEnumeration answer = ctxGC.search(searchBase, searchFilter, searchCtls); 

         while (answer.hasMoreElements()) 

         { 

           SearchResult sr = (SearchResult) answer.next(); 

           Attributes attrs = sr.getAttributes(); 

           Map amap = null; 

           if (attrs != null) 

           { 

             amap = new HashMap(); 

             NamingEnumeration ne = attrs.getAll(); 

             while (ne.hasMore()) 

             { 
               Attribute attr = (Attribute) ne.next(); 

               amap.put(attr.getID(), attr.get()); 

             } 

             ne.close(); 

           } 

             return amap; 

         } 

       } 

       catch (NamingException ex) 

       { 

         ex.printStackTrace(); 

       } 

     

       return null; 

     } 

 
 
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  
  String tdomain = "rd.**.com";
  String tidaphost = "ldap://a***.rd.**.com";
  String tsearchbase = "dc=rd,dc=ge***,dc=com";
  ADAuthenticator ada = new ADAuthenticator(tdomain,tidaphost , tsearchbase);
  String user = "username";
  String pwd = "12345678";
  Map umap = ada.authenticate(user, pwd);
   if (umap == null)
   System.out.println("login failed");
   else {
   System.out.println("fsdklajfdalskjfjsaklfj");
   }


 }

}

分享到:
评论

相关推荐

    IDAP-Link/M:IDAP-Link/M 软件-开源

    在 IDAP-Link 和 IDAP-M 板上使用的软件和固件。 IDAP-M 是一种集成在目标板上的 CMSIS-DAP JTAG 模块设计。 IDAP-Link 是一个独立的 CMSIS-DAP 调试 JTag。 它使用 IDAP-M 作为核心 JTAG

    ldap详细安装资料

    - 修改配置文件中的参数,包括LDAP服务器的URL、管理员账号和密码等。 - 确保PHP支持gettext和ldap扩展。 4. **重启Apache服务**: 访问Phpldapadmin页面。 #### 六、配置LDAP日志 为了便于维护和故障排查,...

    java 操作ldap的简单实例

    然后,我们设置了 LDAP 服务器的连接信息,包括管理员名称、管理员密码、LDAP 服务器的 URL 等。接着,我们使用 InitialLdapContext 创建了一个 LDAP 上下文对象 ctx。 三、搜索操作 在搜索操作中,我们首先创建了...

    idap反编译

    iOS反编译工具,需要做越狱开发,或相关研究的ios开发人员必备

    Derzkaya:IDAP第一个应用程序

    德扎卡亚IDAP第一个应用程序我需要的 : 6月11日。我仍然需要做:查看最后一次提交有用的链接和内容: 音频连接编译'com.github.hiteshsondhi88.libffmpeg:FFmpegAndroid:0.2.5'-Gradle添加FFMpeg

    spring-ldap-1.3.1.RELEASE-all.jar

    包含spring ldap开发用的包,是当前的最新版,其余还需要jar包括commons-collection.jar,commons-lang.jar,commons-logging.jar,ldapbp.jar,spring-beans.jar,spring-context.jar,spring-dao.jar

    python_ldap-3.4.4-cp38-cp38-win_amd64.whl.zip

    1. 连接和身份验证:连接到LDAP服务器并进行身份验证。 2. 搜索操作:执行各种类型的查询,根据不同的过滤条件查找目录中的条目。 3. 添加和删除条目:向目录中添加新条目或删除现有条目。 4. 修改条目:更新目录...

    安装配置 IBM Directory Server

    SSL不仅可以验证客户端是否连接到了正确的服务器,还能加密客户端和LDAP服务器之间的通信数据,从而大大增强了整个系统的安全性和可靠性。此外,本文还提到了配置过程中所需的一些基础概念和技术细节,帮助读者更好...

    python_ldap-3.4.0-cp38-cp38-win_amd64.whl

    python_ldap-3.4.0-cp38-cp38-win_amd64.whl

    Oracle Streams Step by Step PPT

    AQ支持多种消息类型,包括Raw、XML、Object和Anydata,并且与Oracle的多种API兼容,如OCI(C)、OCCI(C++)、Java JMS、PL/SQL、OO40(COM)、Internet Data Access (IDAP)以及通过异构网关的ODBC。 Change Data ...

    hive和hbase整合

    catgyid6,catgyname6,catgyid7,catgyname7,catgyid8,catgyname8,catgyid9,catgyname9,levelnum,catgyno,createtmp idap_dim_chrg_item_catgy /user/hive/staging/idap_dim_chrg_item_catgy ``` 该命令使用HBase的`...

    Invade-and-Annex:这是《 Ahoy Worlds Invade》和《附件》的完整改写

    入侵和附件 这是《 Ahoy Worlds Invade》和《附件》的完整改写 要构建任务,您需要Python并运行: python build.py 内置任务存在于built文件夹中。地图配置位于map 当前状态: Altis地图与近程FOB。 主要AO和FOB的...

    联通SGIP协议接口文档(JAVA版)

    这个接口文档是基于SGIP1.1协议标准,使得SP能够通过英斯克的iDAP短信网关向终端用户发送和接收短信。本文档详细介绍了如何使用spApi.jar包中的各类进行操作。 1. API包结构与使用 spApi.jar包含了一系列关键类,...

    任何用Ajax实现三级联动

    1. **dwr.xml配置**:使用DWR框架进行Ajax调用的配置文件,指定了Java类`com.zjhcsoft.idap.struts.ajaxBean.SaleOrganizeAjax`作为处理请求的后端类。 2. **数据库查询语句**:根据父级编码查询子级组织机构信息,...

    JNDIExploit:用于JNDI注入攻击的恶意LDAP服务器

    JNDI漏洞利用 一款用作JNDI注入利用的工具,大量参考/引用了Rogue JNDI项目的代码,支持直接插入植入内存shell ,并集成了常见的bypass 高版本JDK的方式,适用于与自动化工具配合使用。 使用说明 ...

Global site tag (gtag.js) - Google Analytics