⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userauthenticate.java

📁 JAVA调用ldap,这是一个simple的例子 很好地介绍了java是如何调用ldap,从而取出ldap的信息
💻 JAVA
字号:
package ldap;

import java.util.Hashtable;

import javax.naming.AuthenticationException;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.ldap.Control;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;



public class UserAuthenticate {
     public static void main(String[] args) {
		// TODO Auto-generated method stub
		 UserAuthenticate t=new  UserAuthenticate();
                 t.LDAP_connect();

	}
   
   
    private void LDAP_connect(){
        String URL = "ldap://192.168.2.236:389/";
     String BASEDN = "OU=WorkFlowUser,DC=hotelvm,DC=com";
    String adminName = "CN=Administrator,CN=Users,DC=hotelvm,DC=com";
    String adminPassword = "password.com"; 
     String FACTORY = "com.sun.jndi.ldap.LdapCtxFactory";
     LdapContext ctx = null;
    Hashtable env = null;
    Control[] connCtls = null;
        env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY,FACTORY);
        env.put(Context.PROVIDER_URL, URL+BASEDN);//LDAP server
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        env.put(Context.SECURITY_PRINCIPAL, adminName); 
        env.put(Context.SECURITY_CREDENTIALS, adminPassword);
        

       
        try{
	           ctx = new InitialLdapContext(env,connCtls);
	           String searchFilter = "objectClass=*";
	           System.out.println("Sucess");
	           SearchControls constraints = new SearchControls();
               constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
               System.out.println("111111111111111111");
               NamingEnumeration en = ctx.search(BASEDN, searchFilter, constraints);
             
               System.out.println("222222222222222222222222222222222");
               if(en == null){
                System.out.println("Have no NamingEnumeration.");
               }
               if(!en.hasMoreElements()){
                System.out.println("Have no element.");
               }
               while (en != null && en.hasMoreElements()){//maybe more than one element
                   Object obj = en.nextElement();
                   if(obj instanceof SearchResult){
                       SearchResult si = (SearchResult) obj;
                       String cn=si.getName();
                       System.out.println(cn);
                   }
                   else{
                       System.out.println(obj);
                   }
                   System.out.println();
               }

        }catch(javax.naming.AuthenticationException e){
            System.out.println("Authentication faild: "+e.toString());
        }catch(Exception e){
            System.out.println("Something wrong while authenticating: "+e.toString());
        }
    }
}
   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -