`
s103y
  • 浏览: 112130 次
  • 性别: 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

    idap反编译

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

    ldap详细安装资料

    是一款很好的软件!希望对大家的今后的工作有很大帮助!

    Derzkaya:IDAP第一个应用程序

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

    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 注意导入的时候要先在...

    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

    ldap.jar

    ldap.jarldap.jar

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

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

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

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

    Python ldap实现登录实例代码

    今天给大家分享python idap实现登录的实例代码,代码简单易懂,需要的朋友一起看看吧

    安装配置 IBM Directory Server

    本文简单的介绍了IBM Directory server 的配置和使用。

Global site tag (gtag.js) - Google Analytics