From f9782e0ddb8f40d5f9c249366aa0ad5c2d6cc127 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 13 Feb 2013 23:49:41 +0000
Subject: [PATCH] Minor fix to prevent attempts to create resources with a client provided resource ID when resource IDs are server generated.

---
 opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LDAP.java |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 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 fa82214..c02ff3b 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
@@ -282,8 +282,13 @@
 
         @Override
         void setResourceId(final Context c, final DN baseDN, final String resourceId,
-                final Entry entry) {
-            if (!isServerProvided) {
+                final Entry entry) throws ResourceException {
+            if (isServerProvided) {
+                if (resourceId != null) {
+                    throw new BadRequestException("Resources cannot be created with a "
+                            + "client provided resource ID");
+                }
+            } else {
                 entry.addAttribute(new LinkedAttribute(idAttribute, ByteString.valueOf(resourceId)));
             }
             final String rdnValue = entry.parseAttribute(dnAttribute).asString();
@@ -325,7 +330,8 @@
             } else if (entry.getAttribute(attribute) != null) {
                 entry.setName(baseDN.child(rdn(entry.parseAttribute(attribute).asString())));
             } else {
-                throw new BadRequestException("Unable to set the resource ID");
+                throw new BadRequestException("Resources cannot be created without a "
+                        + "client provided resource ID");
             }
         }
 

--
Gitblit v1.10.0