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