java - 从 Ldap 数据库(ApacheDs)获取 SHA 密码值

标签 java ldap apacheds

我有一个 ldap 数据库。我正在使用 inetorgPerson 对象类。在这个类中有 userPassword 属性。 userPassword 值是 SHA 密码。我正在使用 javax.naming.directory 包来获取 userPassword 值。但是返回值与 SHA 密码值不同。我怎样才能得到正确的值(value)? 一个简单的代码是:

public ArrayList<String> search(String base, String filter,String[] returningAttributes){
        ArrayList<String> result=new ArrayList<String>();
            SearchControls ctls = new SearchControls();
            ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);
            ctls.setReturningAttributes(returningAttributes);

        NamingEnumeration resultEnum = null;
        try {
            resultEnum = ctx.search(base, filter, ctls);
              while (resultEnum.hasMore()) {
                SearchResult res = (SearchResult) resultEnum.next();

                // print DN of entry
               // System.out.println(res.getNameInNamespace());

                // print attributes returned by search
                Attributes attrs = res.getAttributes();
                NamingEnumeration e = attrs.getAll();
                while (e.hasMore()) {
                    Attribute attr = (Attribute) e.next();
                    result.add(attr.toString());
                }
                System.out.println();

            }
            return result;
        } catch (NamingException e) {

        }
        return null;
    }

最佳答案

I want to compare sha password in ldap with my jsf 2 password

不,你不想那样做。您想要使用新凭据执行 LDAPContext.reconnect() 并让 LDAP 进行比较。

关于java - 从 Ldap 数据库(ApacheDs)获取 SHA 密码值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6967842/

相关文章:

python - django 中的 LDAP 身份验证错误

database - 数据创建响应超时的最佳重试策略

java - 运行嵌入在我的应用程序中的 Apache DS

apache - 使用 ApacheDS 创建新的架构 LDAP

java - 使用java连接hsql数据库

java.lang.IllegalArgumentException : No ConfigurationProperties annotation found on

Java多线程有状态服务器——网络设计

java - 如何将整数列表从机器人测试用例传递到后端java函数或方法?

svn - 使用 LDAP 进行 SVN 用户认证

grails - 使用Groovy从OpenLDAP服务器读取和保存二进制图像