summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2010-04-20 15:35:51 +1000
committerAndrew Bartlett <abartlet@samba.org>2010-04-22 18:37:18 +1000
commitcbb818222aea20b47adbcd5e4461949d7e5d5107 (patch)
tree9d410501958440e4bcc521bbf01c277dfad82175
parent9eacde808ee464343620a311bb2bdea5ac7b5ee8 (diff)
downloadsamba-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
-rw-r--r--source4/dsdb/samdb/ldb_modules/samba_dsdb.c9
-rw-r--r--source4/dsdb/samdb/ldb_modules/simple_ldap_map.c2
-rw-r--r--source4/setup/schema-map-openldap-2.36
-rw-r--r--source4/setup/slapd.conf3
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}