繁体   English   中英

通过 JNDI (Java) -> NoPermissionError 在 LDAP 上添加用户

[英]Adding User on LDAP via JNDI (Java) -> NoPermissionError

首先,我想解释一下我想要做什么以及代码的外观:

我想通过 JNDI 在我的 LDAP 和 JAVA 上添加一个用户,我添加了以下代码:

public void addUser(String firstName, String lastName, String number) throws NamingException {
        Properties initialProperties = new Properties();
        initialProperties.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        initialProperties.put(Context.PROVIDER_URL, "***");
        initialProperties.put(Context.SECURITY_AUTHENTICATION, "simple");
        initialProperties.put(Context.SECURITY_PRINCIPAL, "***");
        initialProperties.put(Context.SECURITY_CREDENTIALS, "***");
        DirContext context = new InitialDirContext(initialProperties);
        
        BasicAttributes attributes = new BasicAttributes();
        Attribute attribute = new BasicAttribute("objectClass");
        attribute.add("top");
        attribute.add("person");
        attribute.add("organizationalPerson");
        attribute.add("inetOrgPerson");
        Attribute sn = new BasicAttribute("sn");
        Attribute cn = new BasicAttribute("cn");
        sn.add(lastName);
        cn.add(firstName);
        attributes.put(sn);
        attributes.put(cn);
        attributes.put(attribute);
        
        try {
            context.createSubcontext("***", attributes);
        } catch(NamingException e) {
            e.printStackTrace();
        }
    }

当我调用该方法时,出现以下错误:

javax.naming.NoPermissionException: [LDAP: error code 50 - 00000005: SecErr: DSID-031528D2, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0

在我看来这没有任何意义,因为我创建了另外两种方法,一种用于获取所有有效的用户,另一种用于编辑也有效的用户,因此我有权读取和写入用户,但是当我想要创建一个用户说我没有权限?

其他人有这个问题吗? 在 LDAP 上是否需要对管理员用户进行任何配置? 但是管理员应该拥有所有权利吗?

我希望任何人都可以帮助我::)

问候,

费边。

所以我有权读取和写入用户,但是当我想创建一个用户时,它说我没有权限

读取、写入和创建是 3 个独立的权限。 用户可以拥有对现有对象的写入权限,但无权创建新的 object。 这些权限可以在每个 OU 上进行不同的设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM