From c5245dae6cccfb602ff1815424b86ab27047187a Mon Sep 17 00:00:00 2001
From: abobrov <abobrov@localhost>
Date: Mon, 11 May 2009 14:22:29 +0000
Subject: [PATCH] - fix NDB backend workflow element processing broken by changes introduced in revision 5273.
---
opends/src/server/org/opends/server/workflowelement/ndb/NDBModifyOperation.java | 19 +++++++--
opends/src/server/org/opends/server/workflowelement/ndb/NDBSearchOperation.java | 19 +++++++--
opends/src/server/org/opends/server/workflowelement/ndb/NDBModifyDNOperation.java | 19 +++++++--
opends/src/server/org/opends/server/workflowelement/ndb/NDBCompareOperation.java | 20 +++++++--
opends/src/server/org/opends/server/workflowelement/ndb/NDBDeleteOperation.java | 19 +++++++--
opends/src/server/org/opends/server/workflowelement/ndb/NDBAddOperation.java | 19 +++++++--
6 files changed, 85 insertions(+), 30 deletions(-)
diff --git a/opends/src/server/org/opends/server/workflowelement/ndb/NDBAddOperation.java b/opends/src/server/org/opends/server/workflowelement/ndb/NDBAddOperation.java
index 4d1ef5c..d0b4872 100644
--- a/opends/src/server/org/opends/server/workflowelement/ndb/NDBAddOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/ndb/NDBAddOperation.java
@@ -433,12 +433,21 @@
// FIXME: earlier checks to see if the entry already exists or
// if the parent entry does not exist may have already exposed
// sensitive information to the client.
- if (AccessControlConfigManager.getInstance().getAccessControlHandler().
- isAllowed(this) == false)
+ try
{
- setResultCode(ResultCode.INSUFFICIENT_ACCESS_RIGHTS);
- appendErrorMessage(ERR_ADD_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS.get(
- String.valueOf(entryDN)));
+ if (AccessControlConfigManager.getInstance()
+ .getAccessControlHandler().isAllowed(this) == false)
+ {
+ setResultCode(ResultCode.INSUFFICIENT_ACCESS_RIGHTS);
+ appendErrorMessage(ERR_ADD_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS
+ .get(String.valueOf(entryDN)));
+ break addProcessing;
+ }
+ }
+ catch (DirectoryException e)
+ {
+ setResultCode(e.getResultCode());
+ appendErrorMessage(e.getMessageObject());
break addProcessing;
}
diff --git a/opends/src/server/org/opends/server/workflowelement/ndb/NDBCompareOperation.java b/opends/src/server/org/opends/server/workflowelement/ndb/NDBCompareOperation.java
index b1c6212..ce1dc22 100644
--- a/opends/src/server/org/opends/server/workflowelement/ndb/NDBCompareOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/ndb/NDBCompareOperation.java
@@ -202,11 +202,21 @@
// FIXME: earlier checks to see if the entry already exists may
// have already exposed sensitive information to the client.
- if (!AccessControlConfigManager.getInstance().
- getAccessControlHandler().isAllowed(this)) {
- setResultCode(ResultCode.INSUFFICIENT_ACCESS_RIGHTS);
- appendErrorMessage(ERR_COMPARE_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS.get(
- String.valueOf(entryDN)));
+ try
+ {
+ if (!AccessControlConfigManager.getInstance()
+ .getAccessControlHandler().isAllowed(this))
+ {
+ setResultCode(ResultCode.INSUFFICIENT_ACCESS_RIGHTS);
+ appendErrorMessage(ERR_COMPARE_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS
+ .get(String.valueOf(entryDN)));
+ break compareProcessing;
+ }
+ }
+ catch (DirectoryException e)
+ {
+ setResultCode(e.getResultCode());
+ appendErrorMessage(e.getMessageObject());
break compareProcessing;
}
diff --git a/opends/src/server/org/opends/server/workflowelement/ndb/NDBDeleteOperation.java b/opends/src/server/org/opends/server/workflowelement/ndb/NDBDeleteOperation.java
index f6e9b87..54866bf 100644
--- a/opends/src/server/org/opends/server/workflowelement/ndb/NDBDeleteOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/ndb/NDBDeleteOperation.java
@@ -213,12 +213,21 @@
// FIXME: earlier checks to see if the entry already exists may
// have already exposed sensitive information to the client.
- if (! AccessControlConfigManager.getInstance().
- getAccessControlHandler().isAllowed(this))
+ try
{
- setResultCode(ResultCode.INSUFFICIENT_ACCESS_RIGHTS);
- appendErrorMessage(ERR_DELETE_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS.get(
- String.valueOf(entryDN)));
+ if (!AccessControlConfigManager.getInstance()
+ .getAccessControlHandler().isAllowed(this))
+ {
+ setResultCode(ResultCode.INSUFFICIENT_ACCESS_RIGHTS);
+ appendErrorMessage(ERR_DELETE_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS
+ .get(String.valueOf(entryDN)));
+ break deleteProcessing;
+ }
+ }
+ catch (DirectoryException e)
+ {
+ setResultCode(e.getResultCode());
+ appendErrorMessage(e.getMessageObject());
break deleteProcessing;
}
diff --git a/opends/src/server/org/opends/server/workflowelement/ndb/NDBModifyDNOperation.java b/opends/src/server/org/opends/server/workflowelement/ndb/NDBModifyDNOperation.java
index 649a85a..e98dab5 100644
--- a/opends/src/server/org/opends/server/workflowelement/ndb/NDBModifyDNOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/ndb/NDBModifyDNOperation.java
@@ -291,12 +291,21 @@
// FIXME: earlier checks to see if the entry or new superior
// already exists may have already exposed sensitive information
// to the client.
- if (! AccessControlConfigManager.getInstance().
- getAccessControlHandler().isAllowed(this))
+ try
{
- setResultCode(ResultCode.INSUFFICIENT_ACCESS_RIGHTS);
- appendErrorMessage(ERR_MODDN_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS.get(
- String.valueOf(entryDN)));
+ if (!AccessControlConfigManager.getInstance()
+ .getAccessControlHandler().isAllowed(this))
+ {
+ setResultCode(ResultCode.INSUFFICIENT_ACCESS_RIGHTS);
+ appendErrorMessage(ERR_MODDN_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS
+ .get(String.valueOf(entryDN)));
+ break modifyDNProcessing;
+ }
+ }
+ catch (DirectoryException e)
+ {
+ setResultCode(e.getResultCode());
+ appendErrorMessage(e.getMessageObject());
break modifyDNProcessing;
}
diff --git a/opends/src/server/org/opends/server/workflowelement/ndb/NDBModifyOperation.java b/opends/src/server/org/opends/server/workflowelement/ndb/NDBModifyOperation.java
index 5748aaf..cf3d5da 100644
--- a/opends/src/server/org/opends/server/workflowelement/ndb/NDBModifyOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/ndb/NDBModifyOperation.java
@@ -291,12 +291,21 @@
// FIXME: earlier checks to see if the entry already exists may have
// already exposed sensitive information to the client.
- if (! AccessControlConfigManager.getInstance().
- getAccessControlHandler().isAllowed(this))
+ try
{
- setResultCode(ResultCode.INSUFFICIENT_ACCESS_RIGHTS);
- appendErrorMessage(ERR_MODIFY_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS.get(
- String.valueOf(entryDN)));
+ if (!AccessControlConfigManager.getInstance()
+ .getAccessControlHandler().isAllowed(this))
+ {
+ setResultCode(ResultCode.INSUFFICIENT_ACCESS_RIGHTS);
+ appendErrorMessage(ERR_MODIFY_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS
+ .get(String.valueOf(entryDN)));
+ break modifyProcessing;
+ }
+ }
+ catch (DirectoryException e)
+ {
+ setResultCode(e.getResultCode());
+ appendErrorMessage(e.getMessageObject());
break modifyProcessing;
}
diff --git a/opends/src/server/org/opends/server/workflowelement/ndb/NDBSearchOperation.java b/opends/src/server/org/opends/server/workflowelement/ndb/NDBSearchOperation.java
index e37b18f..690cbcc 100644
--- a/opends/src/server/org/opends/server/workflowelement/ndb/NDBSearchOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/ndb/NDBSearchOperation.java
@@ -158,12 +158,21 @@
// FIXME: for now assume that this will check all permission
// pertinent to the operation. This includes proxy authorization
// and any other controls specified.
- if (! AccessControlConfigManager.getInstance().getAccessControlHandler().
- isAllowed(this))
+ try
{
- setResultCode(ResultCode.INSUFFICIENT_ACCESS_RIGHTS);
- appendErrorMessage(ERR_SEARCH_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS.get(
- String.valueOf(baseDN)));
+ if (!AccessControlConfigManager.getInstance()
+ .getAccessControlHandler().isAllowed(this))
+ {
+ setResultCode(ResultCode.INSUFFICIENT_ACCESS_RIGHTS);
+ appendErrorMessage(ERR_SEARCH_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS
+ .get(String.valueOf(baseDN)));
+ break searchProcessing;
+ }
+ }
+ catch (DirectoryException e)
+ {
+ setResultCode(e.getResultCode());
+ appendErrorMessage(e.getMessageObject());
break searchProcessing;
}
--
Gitblit v1.10.0