From 33db777770ba0a2e612d60d26a4e44f280263201 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 06 Mar 2013 11:57:52 +0000
Subject: [PATCH] Partial fix for OPENDJ-699: Implement DN reference mapping
---
opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LDAP.java | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LDAP.java b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LDAP.java
index 6a9d558..9964e7f 100644
--- a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LDAP.java
+++ b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LDAP.java
@@ -184,6 +184,7 @@
* },
* "manager" : { "reference" : {
* "ldapAttribute" : "manager",
+ * "baseDN" : "ou=people,dc=example,dc=com",
* "mapper" : { "object" : {
* "id" : { "simple" : { "ldapAttribute" : "uid", "isSingleValued" : true } },
* "displayName" : { "simple" : { "ldapAttribute" : "cn", "isSingleValued" : true } }
@@ -367,14 +368,18 @@
final JsonValue config = mapper.get("reference");
final AttributeDescription ldapAttribute =
ad(config.get("ldapAttribute").required().asString());
+ final DN baseDN = DN.valueOf(config.get("baseDN").required().asString(), schema);
final AttributeMapper m = configureMapper(config.get("mapper").required());
- final ReferenceAttributeMapper r = reference(ldapAttribute, m);
+ final ReferenceAttributeMapper r = reference(ldapAttribute, baseDN, m);
if (config.get("isRequired").defaultTo(false).asBoolean()) {
r.isRequired();
}
if (config.get("isSingleValued").defaultTo(false).asBoolean()) {
r.isSingleValued();
}
+ if (config.isDefined("searchFilter")) {
+ r.searchFilter(config.get("searchFilter").asString());
+ }
r.writability(parseWritability(mapper, config));
return r;
} else if (mapper.isDefined("object")) {
@@ -644,13 +649,13 @@
}
public static ReferenceAttributeMapper reference(final AttributeDescription attribute,
- final AttributeMapper mapper) {
- return new ReferenceAttributeMapper(attribute, mapper);
+ final DN baseDN, final AttributeMapper mapper) {
+ return new ReferenceAttributeMapper(attribute, baseDN, mapper);
}
- public static ReferenceAttributeMapper reference(final String attribute,
+ public static ReferenceAttributeMapper reference(final String attribute, final String baseDN,
final AttributeMapper mapper) {
- return reference(AttributeDescription.valueOf(attribute), mapper);
+ return reference(AttributeDescription.valueOf(attribute), DN.valueOf(baseDN), mapper);
}
public static SimpleAttributeMapper simple(final AttributeDescription attribute) {
--
Gitblit v1.10.0