jsp ldap驗證登錄

 java

  1. package ldap; 
  2.  
  3. import java.util.Hashtable; 
  4. import javax.naming.Context; 
  5. import javax.naming.directory.DirContext; 
  6. import javax.naming.directory.InitialDirContext; 
  7.  
  8. public class ldap { 
  9.      
  10.       private String host = "ldap://192.168.X.X:389"
  11.       public boolean login(String userName, String password) { 
  12.           boolean result = true
  13.           DirContext ctx = null
  14.           Hashtable<String, String> env = new Hashtable<String, String>(); 
  15.           env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory"); 
  16.           env.put(Context.PROVIDER_URL,host);                                    //LDAP host 
  17.           env.put(Context.SECURITY_AUTHENTICATION, "simple");             //簡單模式進行連接 
  18.           env.put(Context.SECURITY_PRINCIPAL, "cn=" + userName + ",dc=XX,dc=XX");//用戶名 
  19.           env.put(Context.SECURITY_CREDENTIALS, password);                      //密碼傳進去 
  20.           try { 
  21.               ctx = new InitialDirContext(env); 
  22.                 }  
  23.           catch (Exception e) { 
  24.               result = false
  25.                 } 
  26.     /* 
  27.      * 關閉連接 
  28.      */ 
  29.                 finally  
  30.                 { 
  31.                     if (ctx != null
  32.                     { 
  33.                         try { 
  34.                             ctx.close(); 
  35.                         }  
  36.                         catch (Exception e) { 
  37.                             result = false
  38.                         } 
  39.                     } 
  40.                 } 
  41.           return result; 
  42.       } 

jsp

 

  1. <
  2. if(request.getParameter("accountName") !=null && request.getParameter("passWord") != null){ 
  3.     String accountName = request.getParameter("accountName");  //獲取html輸入框的數值 
  4.     String passWord = request.getParameter("passWord"); 
  5.      
  6.     ldap lp=new ldap();                                          //實例化 
  7.     if(lp.login(accountName,passWord))                              //傳參,返回ture或者false 
  8.     {驗證通過的動作代碼} 

 

2012-8-29

上面的方法是隻能適用於用戶在根目錄下,DN沒有ou這個選項的驗證

因爲組織結構的調整和整合,目錄級別發生變動,會有多個ou,會有子目錄。所以這個驗證就出現不能登錄的情況了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章