diff options
author | Andrew Bartlett <abartlet@samba.org> | 2010-04-20 15:35:51 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2010-04-22 18:37:18 +1000 |
commit | cbb818222aea20b47adbcd5e4461949d7e5d5107 (patch) | |
tree | 9d410501958440e4bcc521bbf01c277dfad82175 /source4 | |
parent | 9eacde808ee464343620a311bb2bdea5ac7b5ee8 (diff) | |
download | samba-cbb818222aea20b47adbcd5e4461949d7e5d5107.tar.gz samba-cbb818222aea20b47adbcd5e4461949d7e5d5107.tar.bz2 samba-cbb818222aea20b47adbcd5e4461949d7e5d5107.zip |
s4:OpenLDAP-backend Use the new rdnval module in OpenLDAP
This is rather than rdn_name, which tries to do the job on the client
side. We need to leave this module in the stack for Fedora DS (and of
course the LDB backend).
Andrew Bartlett
Diffstat (limited to 'source4')
-rw-r--r-- | source4/dsdb/samdb/ldb_modules/samba_dsdb.c | 9 | ||||
-rw-r--r-- | source4/dsdb/samdb/ldb_modules/simple_ldap_map.c | 2 | ||||
-rw-r--r-- | source4/setup/schema-map-openldap-2.3 | 6 | ||||
-rw-r--r-- | source4/setup/slapd.conf | 3 |
4 files changed, 15 insertions, 5 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/samba_dsdb.c b/source4/dsdb/samdb/ldb_modules/samba_dsdb.c index 8f7e5407c7..bbdb768705 100644 --- a/source4/dsdb/samdb/ldb_modules/samba_dsdb.c +++ b/source4/dsdb/samdb/ldb_modules/samba_dsdb.c @@ -185,11 +185,15 @@ static int samba_dsdb_init(struct ldb_module *module) "kludge_acl", "schema_load", "instancetype", - "rdn_name", NULL }; const char **link_modules; + static const char *fedora_ds_modules[] = { + "rdn_name", NULL }; + static const char *openldap_modules[] = { + NULL }; static const char *tdb_modules_list[] = { + "rdn_name", "subtree_delete", "repl_meta_data", "subtree_rename", @@ -252,11 +256,12 @@ static int samba_dsdb_init(struct ldb_module *module) extended_dn_module = extended_dn_module_ldb; link_modules = tdb_modules_list; } else { - link_modules = NULL; if (strcasecmp(backendType, "fedora-ds") == 0) { + link_modules = fedora_ds_modules; backend_modules = fedora_ds_backend_modules; extended_dn_module = extended_dn_module_fds; } else if (strcasecmp(backendType, "openldap") == 0) { + link_modules = openldap_modules; backend_modules = openldap_backend_modules; extended_dn_module = extended_dn_module_openldap; } diff --git a/source4/dsdb/samdb/ldb_modules/simple_ldap_map.c b/source4/dsdb/samdb/ldb_modules/simple_ldap_map.c index bf9cd4fdda..592cd01b22 100644 --- a/source4/dsdb/samdb/ldb_modules/simple_ldap_map.c +++ b/source4/dsdb/samdb/ldb_modules/simple_ldap_map.c @@ -287,7 +287,7 @@ static const struct ldb_map_attribute entryuuid_attributes[] = .type = LDB_MAP_RENAME, .u = { .rename = { - .remote_name = "samba4RDN" + .remote_name = "rdnValue" } } }, diff --git a/source4/setup/schema-map-openldap-2.3 b/source4/setup/schema-map-openldap-2.3 index 0d38652dae..09808b6742 100644 --- a/source4/setup/schema-map-openldap-2.3 +++ b/source4/setup/schema-map-openldap-2.3 @@ -15,6 +15,10 @@ uidNumber gidNumber #The memberOf plugin provides this attribute memberOf +#'name' is the RDN in AD, but 'name' means something else in +#OpenLDAP. We use rdnValue for the mapping, but this is provided by +#the rdnval overlay. +name #These conflict with OpenLDAP builtins attributeTypes:samba4AttributeTypes 2.5.21.5:1.3.6.1.4.1.7165.4.255.7 @@ -24,8 +28,6 @@ objectClasses:samba4ObjectClasses 2.5.21.6:1.3.6.1.4.1.7165.4.255.5 subSchema:samba4SubSchema 2.5.20.1:1.3.6.1.4.1.7165.4.255.4 -#'name' is the RDN in AD, but something else in OpenLDAP -name:samba4RDN #Remap these so that we don't put operational attributes in a schema MAY modifyTimeStamp:samba4ModifyTimestamp 2.5.18.2:1.3.6.1.4.1.7165.4.255.3 diff --git a/source4/setup/slapd.conf b/source4/setup/slapd.conf index 0077a224fb..61b216b6d6 100644 --- a/source4/setup/slapd.conf +++ b/source4/setup/slapd.conf @@ -86,6 +86,7 @@ ${INDEX_CONFIG} overlay syncprov syncprov-sessionlog 100 syncprov-checkpoint 100 10 +overlay rdnval ### Multimaster-Replication of cn=schema Subcontext ### @@ -106,6 +107,7 @@ ${INDEX_CONFIG} overlay syncprov syncprov-sessionlog 100 syncprov-checkpoint 100 10 +overlay rdnval ### Multimaster-Replication of cn=config Subcontext ### ${MMR_SYNCREPL_CONFIG_CONFIG} @@ -125,6 +127,7 @@ ${INDEX_CONFIG} overlay syncprov syncprov-sessionlog 100 syncprov-checkpoint 100 10 +overlay rdnval ### Multimaster-Replication of cn=user/base-dn context ### ${MMR_SYNCREPL_USER_CONFIG} |