Java OpenLDAP-获取密码属性

Java OpenLDAP-获取密码属性,java,ldap,openldap,Java,Ldap,Openldap,我正在编写一个OpenLdap控制器,其中有很多ldap函数。一个功能是获取LdapUser及其不同属性 例如: NamingEnumeration<SearchResult> enumResult = null; UserData ldapUser = new UserData(); private String[] user_attributes = new String[]{"uid","cn", "sn", "dn", "description",

我正在编写一个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"));         

    }
但这似乎不再适用于OpenLdap。有人知道或者有从OpenLdap获取java中这些密码属性的解决方案吗

致意

“密码”很可能是真实密码的散列或加密版本

资料来源:


另请参见

您是否配置了
ppolicy
覆盖?这不是“参考”,它是您剽窃的来源。@EJP感谢您投入宝贵的时间。我会注意何时使用“参考”、“来源”和“另见”。嗨,谢谢你的回答。但我还是有问题。“userPassword”属性正在工作,但在TDS工作的重要属性是“pwdExpires”、“pwdChangedTime”、“lastLogonTime”等。如何获取这些属性?正如@EJP所建议的,您是否配置了覆盖。
        ldapUser.setPassword(getAttribute(result, "userPassword"));
        ldapUser.setpwdExpires(getAttribute(result,"pwdExpires"));
        ldapUser.setpwdChangedTime(getAttribute(result, "pwdChangedTime"));
        ldapUser.setlastLogonTime(getAttribute(result,"lastLogonTime"));