java對Ldap操作1

前一陣學習了ldap,用java小試了一下,只實現java對ldap的查找、登陸功能,傳上來供初級學者參考:

UserDaoLdap: 

package ldap;

import java.util.List;

import ldap.pojo.LdapPersonInfo;

/**
 * access Ldap
 * 
 * 
@author 張亮
 
*/

public interface UserDaoLdap {
    
/**
     * 獲得所有的用戶名(ldap稱cn),可根據第二個參數指定返回值是否重複

     * 
     * 
@param scope
     *            取值爲0、1、2,分別對應 SearchControls 類 OBJECT_SCOPE, ONELEVEL_SCOPE,
     *            SUBTREE_SCOPE三個查詢範圍,分別代表 當前對象查詢、當前節點下對象查詢、當前節點所有子目錄查詢
     * 
     * 
@param distinct
     *            true,去掉結構中的重複值;false 允許結果中包含重複值

     * 
@return 查詢範圍下返回的cn列表
     
*/

    
public List getAllPersonNames(int scope, boolean distinct);

    
/**
     * 查詢指定範圍下的所有用戶信息

     * 
     * 
@param scope
     *            取值爲0、1、2,分別對應 SearchControls 類 OBJECT_SCOPE, ONELEVEL_SCOPE,
     *            SUBTREE_SCOPE三個查詢範圍,分別代表 當前對象查詢、當前節點下對象查詢、當前節點所有子目錄查詢
     * 
     * 
@return 查詢範圍下返回的所有用戶信息列表

     
*/

    
public List getAllPersons(int scope);

    
/**
     * 根據Uid查詢用戶信息,*代表任意長度的任意字符

     * 
     * 
@param uid
     *            用戶的uid
     * 
@param scope
     *            取值爲0、1、2,分別對應 SearchControls 類 OBJECT_SCOPE, ONELEVEL_SCOPE,
     *            SUBTREE_SCOPE三個查詢範圍,分別代表 當前對象查詢、當前節點下對象查詢、當前節點所有子目錄查詢
     * 
     * 
@return 用戶信息
     
*/

    
public List  getPersonByUid(String uid, int scope);

    
/**
     * 查詢包含當前Cn信息的所有用戶,*代表任意長度的任意字符

     * 
     * 
@param cn
     *            用戶的cn
     * 
@param scope
     *            取值爲0、1、2,分別對應 SearchControls 類 OBJECT_SCOPE, ONELEVEL_SCOPE,
     *            SUBTREE_SCOPE三個查詢範圍,分別代表 當前對象查詢、當前節點下對象查詢、當前節點所有子目錄查詢
     * 
     * 
@return 用戶列表
     
*/

    
public List getPersonByCn(String cn, int scope);

    
/**
     * 使用LdapPersonInfo類對象實現複合查詢,屬性中可使用通配符*,*代表任意長度的任意字符

     * 
     * 
@param ldapPersonInfo
     *            查詢條件
     * 
@param scope
     *            取值爲0、1、2,分別對應 SearchControls 類 OBJECT_SCOPE, ONELEVEL_SCOPE,
     *            SUBTREE_SCOPE三個查詢範圍,分別代表 當前對象查詢、當前節點下對象查詢、當前節點所有子目錄查詢
     * 
     * 
@return 用戶列表
     
*/

    
public List getPersonByPersonEnty(
            LdapPersonInfo ldapPersonInfo, 
int scope);

    
/**
     * 根據dn查找用戶,dn爲base dn 的相對dn.(若basedn爲:dc=koal,dc=com,user
     * dn爲:uid=123,dc=koal,dc=com,則此處只需要提供 123 作爲參數)
     * 
     * 
@param dn
     *            相對base dn的dn參數
     * 
@return 用戶信息
     
*/

    
public LdapPersonInfo getLdapObjectByDn(String dn);

    
/**
     * 驗證用戶登陸
     * 
     * 
@param uid
     *            用戶uid
     * 
@param password
     *            用戶密碼
     * 
     * 
@return 是否登陸成功
     
*/

    
public boolean userLogin(String uid, String password);

    
/**
     * 查詢用戶user dn
     * 
     * 
@param uid
     *            用戶uid
     * 
     * 
@return 用戶dn列表,當前目錄節點下可能存在多個相同uid的多個user dn
     
*/

    
public List getUserDnByUid(String uid);
}

 

  

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