当前位置: 首页 > 知识库问答 >
问题:

无法通过spring LDAP更改openDJ中禁用的ds pwp帐户的值

高琛
2023-03-14

我正在使用openDJ for LDAP,无法从spring LDAP模板更改openDJ中的ds pwp account disabled属性值。

我已经通过SpringLDAP创建了DirContextOperations类对象。当我使用spring ldap获取ds pwp account disabled属性的值时,它是给定的。但它不允许通过spring ldap更新ds pwp account disabled属性值。您能帮助我如何通过spring ldap更新ds pwp帐户禁用属性值吗。我在google上读了很多文章,可能是通过springldap修改opendj中的权限问题,也可能是其他问题。

我正在分享一些代码来识别我如何使用开放DJ使用Spring ldap-

私有LdapTemboard ldapTemboard;

ErrorDTO createAccountIfNotExists(Account account){

    DirContextAdapter context = new DirContextAdapter(dn);
    context.setAttributeValues(OBJECTCLASS, new String[] { TOP, USERACCOUNTS });
    mapToContext(account, context);
    try {
        ldapTemplate.bind(context);

    } catch (Exception e) {
    }
    return error;
}

public LdapTemplate getLdapTemplate() {
    return ldapTemplate;
}

public void setLdapTemplate(LdapTemplate ldapTemplate) {
    this.ldapTemplate = ldapTemplate;
}

void mapToContext(Account account, DirContextOperations context) {
    context.setAttributeValue("cn", account.getFirstName());
    context.setAttributeValue("sn", account.getLastName());
    context.setAttributeValue("x-user-id", account.getUserId());
    context.setAttributeValue("mail", account.getEmail());
    context.setAttributeValue("givenname", account.getFirstName());
    context.setAttributeValue("mobile", account.getMobilePhone());
    context.setAttributeValue("telephonenumber", account.getBusinessPhone());
    context.setAttributeValue("title", account.getJobTitle());
    context.setAttributeValue("x-incident-ref", account.getIncidentRef());
    context.setAttributeValue("x-client-category", account.getClientCategory());
    context.setAttributeValue("x-organization", account.getOrganization());
    context.setAttributeValue("facsimiletelephonenumber", account.getFax());
    context.setAttributeValue("x-bureau", account.getBureau());
    context.setAttributeValue("x-company", account.getCompany());
    context.setAttributeValue("ds-pwp-account-disabled", account.getEnabled());
    if (account.getAccountCode() != null) {
        context.setAttributeValue("x-account-code", account.getAccountCode());
        context.setAttributeValue("uid", account.getAccountCode() + "#" + account.getUserId());
    } else {
        context.setAttributeValue("uid", account.getUserId());
    }

}

下面给出了错误-组织。springframework。ldap。InvalidateTributeValueException:“ds pwp帐户已禁用”属性值格式错误;嵌套的异常是javax。命名。目录InvalidateTributeValueException:“ds pwp帐户已禁用”属性值格式错误;剩余名称“uid=coy#user8,ou=User Accounts”

共有2个答案

岳池暝
2023-03-14

正如我所知如果

ds-pwp-account-disabled

所以试一试,不添加这个属性是用户启用的。

if(!account.getEnabled()){ //suppose that it's returning a boolean
  context.setAttributeValue("ds-pwp-account-disabled", "true");
}
越星晖
2023-03-14

ds pwp account disabled属性具有LDAP语法布尔值。OpenDJ服务器唯一接受的值是“true”和“false”。我不是Spring LDAP方面的专家,但如果属性的语法未知,我怀疑该库是否能正确地将Java布尔值转换为正确的LDAP值。

 类似资料:
  • 问题内容: 应用 http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css和 http://code.jquery.com/mobile/1.3.2/jquery.mobile后-1.3.2.min.js 无法通过脚本更改按钮的文本 有没有类似的经验并有解决方案? 可以从 FIDDLE 尝试DEMO **** JQUERY: H

  • 应用http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css和http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js后 无法通过脚本

  • 希望有人能对以下事情有所帮助; 我有一个角度 根据要求,应用程序使用用户名(而不是电子邮件地址)登录应用程序。到目前为止,除了以下场景外,我已经设法让一切正常工作: 当通过Graph API创建帐户时,该帐户的所有者无法重置该帐户的密码。错误是“无法找到提供的用户ID的帐户”。 通过自定义注册策略创建的帐户并非如此,因此我进行了一些比较,发现对于通过Graph API创建的帐户,电子邮件丢失(可以

  • 我一直在开发一个工具,稍后将用于管理组织中的用户签名,我已经成功地完成了所有的应用程序,在测试期间我发现我只能更改我的签名。。。 我认为问题在于权限和授权。我使用的是OAuth客户端ID,我在控制台上创建了这个项目。开发者。谷歌。com和我启用了Gmail API。 下面是我代码的重要部分: 在执行应用程序时,它可以成功更新我的签名,但对于其他用户,它会返回以下信息: 谷歌。API。请求。Requ

  • 我试图通过Azure AD Graph API在B2C领域创建一个“localaccount”。 为此,我注册了一个应用程序(通过Azure Active Directory->app registrations(legacy))并添加了“Windows Azure Active Directory”的所有权限。 此外,如果我通过注册流创建了一个新用户,则可以创建一个本地帐户。 有人知道我做错了什

  • 我试图找出在广告中,用户是否允许更改密码。我已经使用SearchResponse来查找该用户是否存在。