View Issue Details

IDProjectCategoryView StatusLast Update
0004248SOGoBackend Calendarpublic2020-05-04 08:53
Reporteraprohorov Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Platform[Server] LinuxOSUbuntuOS Version14.04 LTS
Product Version3.2.10 
Summary0004248: SOGo can't write to LDAP
Description

Trying to keep address book in LDAP with the following configuration:
{
type = ldap;
CNFieldName = cn;
UIDFieldName = uid;
IDFieldName = uid;
baseDN = "ou=peoples,dc=domain,dc=tld";
bindDN = "cn=admin,dc=domain,dc=tld";
bindPassword = pass;
canAuthenticate = YES;
displayName = "Global Adressbook";
hostname = ldap://127.0.0.1:389;
id = public;
isAddressBook = YES;
listRequiresDot = NO;
mapping = {
photo = ("jpegPhoto");
};
abOU = "addressbook";
objectClasses = (inetOrgPerson); // CAN BE ANY
}

After login in web-UI SOGo create ou=addressbook and ou=personal in LDAP.

But if I try to create new card (filled in form "Display", "First" and "Last") it fail:

Aug 14 23:20:49 domain slapd[19702]: conn=2531 op=1 do_add: dn (cn=73a6-59920600-5-56454280,ou=personal,ou=addressbook,uid=alise,ou=peoples,dc=domain,dc=tld)
Aug 14 23:20:49 domain slapd[19702]: ==> mdb_add: cn=73a6-59920600-5-56454280,ou=personal,ou=addressbook,uid=alise,ou=peoples,dc=domain,dc=tld
Aug 14 23:20:49 domain slapd[19702]: Entry (cn=73a6-59920600-5-56454280,ou=personal,ou=addressbook,uid=alise,ou=peoples,dc=domain,dc=tld): object class 'inetOrgPerson' requires attribute 'sn'
Aug 14 23:20:49 domain slapd[19702]: send_ldap_result: err=65 matched="" text="object class 'inetOrgPerson' requires attribute 'sn'"

If I change objectClasses = (inetOrgPerson); to any (ex objectClasses = (applicationProcess) it's required only CN attribute) it fail with same error 'inetOrgPerson' requires attribute 'sn'"

If I manually create record:

dn: cn=Test,ou=personal,ou=addressbook,uid=alise,ou=peoples,dc=domain,dc=tld
cn: Test
displayName: Test
objectClass: inetOrgPerson
objectClass: top
sn: Testerov

It shows up in Web-UI but if I try to edit card, SOGo didn't try to modify record in LDAP:

Aug 14 23:42:22 domain slapd[19702]: connection_get(14)
Aug 14 23:42:22 domain slapd[19702]: ==> mdb_bind: dn: cn=admin,dc=domain,dc=ltd
Aug 14 23:42:22 domain slapd[19702]: send_ldap_result: err=0 matched="" text=""
Aug 14 23:42:22 domain slapd[19702]: connection_get(14)
Aug 14 23:42:22 domain slapd[19702]: SRCH "ou=addressbook,uid=alise,ou=peoples,dc=domain,dc=ltd" 0 0
Aug 14 23:42:22 domain slapd[19702]: 0 0 0
Aug 14 23:42:22 domain slapd[19702]: filter: (objectClass=)
Aug 14 23:42:22 domain slapd[19702]: attrs:
Aug 14 23:42:22 domain slapd[19702]:

Aug 14 23:42:22 domain slapd[19702]:
Aug 14 23:42:22 domain slapd[19702]: base_candidates: base: "ou=addressbook,uid=alise,ou=peoples,dc=domain,dc=ltd" (0x00000019)
Aug 14 23:42:22 domain slapd[19702]: send_ldap_result: err=0 matched="" text=""
Aug 14 23:42:22 domain slapd[19702]: connection_get(14)
Aug 14 23:42:22 domain slapd[19702]: SRCH "ou=addressbook,uid=alise,ou=peoples,dc=domain,dc=tld" 1 0
Aug 14 23:42:22 domain slapd[19702]: 0 0 0
Aug 14 23:42:22 domain slapd[19702]: filter: (objectClass=)
Aug 14 23:42:22 domain slapd[19702]: attrs:
Aug 14 23:42:22 domain slapd[19702]: ou
Aug 14 23:42:22 domain slapd[19702]: description
Aug 14 23:42:22 domain slapd[19702]:
Aug 14 23:42:22 domain slapd[19702]: send_ldap_result: err=0 matched="" text=""
Aug 14 23:42:22 domain slapd[19702]: connection_get(17)
Aug 14 23:42:22 domain slapd[19702]: ==> mdb_bind: dn: cn=admin,dc=domain,dc=ltd
Aug 14 23:42:22 domain slapd[19702]: send_ldap_result: err=0 matched="" text=""
Aug 14 23:42:22 domain slapd[19702]: connection_get(17)
Aug 14 23:42:22 domain slapd[19702]: SRCH "" 0 0
Aug 14 23:42:22 domain slapd[19702]: 0 0 0
Aug 14 23:42:22 domain slapd[19702]: filter: (objectClass=
)
Aug 14 23:42:22 domain slapd[19702]: attrs:
Aug 14 23:42:22 domain slapd[19702]: subschemaSubentry
Aug 14 23:42:22 domain slapd[19702]:
Aug 14 23:42:22 domain slapd[19702]: send_ldap_result: err=0 matched="" text=""
Aug 14 23:42:22 domain slapd[19702]: connection_get(17)
Aug 14 23:42:22 domain slapd[19702]: SRCH "cn=Subschema" 0 0
Aug 14 23:42:22 domain slapd[19702]: 0 0 0
Aug 14 23:42:22 domain slapd[19702]: filter: (objectClass=)
Aug 14 23:42:22 domain slapd[19702]: attrs:
Aug 14 23:42:22 domain slapd[19702]: objectclasses
Aug 14 23:42:22 domain slapd[19702]:
Aug 14 23:42:22 domain slapd[19702]: send_ldap_result: err=0 matched="" text=""
Aug 14 23:42:22 domain slapd[19702]: connection_get(17)
Aug 14 23:42:22 domain slapd[19702]: SRCH "ou=personal,ou=addressbook,uid=alise,ou=peoples,dc=domain,dc=ltd" 2 0
Aug 14 23:42:22 domain slapd[19702]: 0 0 0
Aug 14 23:42:22 domain slapd[19702]: filter: (cn=test)
Aug 14 23:42:22 domain slapd[19702]: attrs:
Aug 14 23:42:22 domain slapd[19702]:

Aug 14 23:42:22 domain slapd[19702]:
Aug 14 23:42:22 domain slapd[19702]: mdb_idl_fetch_key: [b49d1940]
Aug 14 23:42:22 domain slapd[19702]: mdb_idl_fetch_key: [6ccf3565]
Aug 14 23:42:22 domain slapd[19702]: send_ldap_result: err=0 matched="" text=""
Aug 14 23:42:22 domain slapd[19702]: connection_get(14)
Aug 14 23:42:22 domain slapd[19702]: connection_get(17)
Aug 14 23:42:22 domain slapd[19702]: connection_get(14)
Aug 14 23:42:22 domain slapd[19702]: ==> mdb_bind: dn: cn=admin,dc=domain,dc=ltd
Aug 14 23:42:22 domain slapd[19702]: send_ldap_result: err=0 matched="" text=""
Aug 14 23:42:22 domain slapd[19702]: connection_get(14)
Aug 14 23:42:22 domain slapd[19702]: SRCH "cn=test,ou=personal,ou=addressbook,uid=alise,ou=peoples,dc=domain,dc=ltd" 0 0
Aug 14 23:42:22 domain slapd[19702]: 0 0 0
Aug 14 23:42:22 domain slapd[19702]: filter: (objectClass=)
Aug 14 23:42:22 domain slapd[19702]: attrs:
Aug 14 23:42:22 domain slapd[19702]:

Aug 14 23:42:22 domain slapd[19702]:
Aug 14 23:42:22 domain slapd[19702]: base_candidates: base: "cn=test,ou=personal,ou=addressbook,uid=alise,ou=peoples,dc=domain,dc=ltd" (0x0000001b)
Aug 14 23:42:22 domain slapd[19702]: send_ldap_result: err=0 matched="" text=""
Aug 14 23:42:22 domain slapd[19702]: connection_get(14)

So it's looks like "objectClasses" parameter - ignored. And none of fields send to LDAP.

Steps To Reproduce
  1. LDAP with:
    dn: ou=peoples,dc=domain,dc=tld
    objectClass: organizationalUnit
    objectClass: top
    ou: peoples

dn: uid=alise,ou=peoples,dc=domain,dc=tld
cn: alise
objectClass: inetOrgPerson
objectClass: top
userPassword:: {SSHA}pass
sn: alise
uid: alise
mail: alise@domain.tld

  1. LDAP part in SOGo config:
    {
    type = ldap;
    CNFieldName = cn;
    UIDFieldName = uid;
    IDFieldName = uid;
    baseDN = "ou=peoples,dc=domain,dc=tld";
    bindDN = "cn=admin,dc=domain,dc=tld";
    bindPassword = pass;
    canAuthenticate = YES;
    displayName = "Global Adressbook";
    hostname = ldap://127.0.0.1:389;
    id = public;
    isAddressBook = YES;
    listRequiresDot = NO;
    mapping = {
    photo = ("jpegPhoto");
    };
    abOU = "addressbook";
    objectClasses = (inetOrgPerson); // CAN BE ANY
    }

  2. Login in Web-UI and field form Display, Lastname

  3. After page refresh Address book empty.

  4. Look in slapd log:

    domain slapd[19702]: Entry (cn=73a6-59920600-5-56454280,ou=personal,ou=addressbook,uid=alise,ou=peoples,dc=domain,dc=tld): object class 'inetOrgPerson' requires attribute 'sn'

Additional Information

Bug 0004206 - as a part of this bug
https://sogo.nu/bugs/view.php?id=4206

TagsNo tags attached.

Relationships

related to 0004206 new SOGo does not set "sn" attribute in LDAP address book 

Activities

dumarjo

dumarjo

2018-01-08 20:15

reporter   ~0012496

Any update on this problem ?

the_nic

the_nic

2020-05-04 08:53

reporter   ~0014303

can someone test https://github.com/inverse-inc/sogo/pull/273 ?

Issue History

Date Modified Username Field Change
2017-08-14 21:18 aprohorov New Issue
2017-08-16 07:49 Christian Mack Relationship added related to 0004206
2018-01-08 20:15 dumarjo Note Added: 0012496
2020-05-04 08:53 the_nic Note Added: 0014303