簡體   English   中英

OpenLDAP-獲取密碼屬性

[英]OpenLDAP - Get Password Attributes

我正在編寫一個OpenLdap控制器,其中有很多ldap函數。 一種功能是獲取LdapUser及其不同的屬性。

例如:

    NamingEnumeration<SearchResult> enumResult = null;
    UserData ldapUser = new UserData();

    private String[] user_attributes = new String[]{"uid","cn", "sn", "dn", "description", "mail", "displayName",
        "userPassword","pwdChangedTime","pwdExpires", "lastLogonTime"};

    try
    {                  
        SearchControls searchCtrls = new SearchControls();
        searchCtrls.setSearchScope(SearchControls.SUBTREE_SCOPE);
        searchCtrls.setReturningAttributes(user_attributes);


        String filter = "(&(objectClass=inetOrgPerson)(uid="+userUid+"))";

        enumResult = ctx.search(ou,filter,searchCtrls);

        SearchResult result = (SearchResult) enumResult.next();


        ldapUser.setUid(getAttribute(result,"uid"));    
        ldapUser.setCN(getAttribute(result, "cn"));
        ldapUser.setSN(getAttribute(result, "sn"));
        ldapUser.setGivenName(getAttribute(result, "givenName"));
        ldapUser.setDescription(getAttribute(result, "description"));
        ldapUser.setMail(getAttribute(result, "mail"));         

    }

很好 我的ldapUser類充滿了屬性。 之前我對TDS控制器做了同樣的事情,在那里我甚至可以使用以下屬性:

        ldapUser.setPassword(getAttribute(result, "userPassword"));
        ldapUser.setpwdExpires(getAttribute(result,"pwdExpires"));
        ldapUser.setpwdChangedTime(getAttribute(result, "pwdChangedTime"));
        ldapUser.setlastLogonTime(getAttribute(result,"lastLogonTime"));

但是,這似乎不再適用於OpenLdap。 有誰知道或有解決方案來從OpenLdap中獲取Java中的這些密碼屬性?

最好的祝福

“密碼”很可能是真實密碼的哈希值或加密版本。

來源: 如何通過JNDI檢索LDAP密碼

另請參見http://bethecoder.com/applications/tutorials/java/ldap/how-to-query-password-attribute-of-ldap-entry.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM