mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Jean-Noel Rouvignac
26.34.2013 bc161a783c673ec7598946a462de6c34d0b65c53
OPENDJ-948 (CR-1873) unauthorized disclosure of directory contents 

Fixing the build. Fixed a test for replication conflict resolution.

AccessControlHandler.java:
In canDiscloseInformation(), allow to disclose information only for internal operations (internal has a broader meaning here than Operation.isInternalOperation()).
1 files modified
9 ■■■■ changed files
opends/src/server/org/opends/server/api/AccessControlHandler.java 9 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/api/AccessControlHandler.java
@@ -144,8 +144,13 @@
    }
    if (entry == null)
    {
      // no such entry exist, let's be safe and forbid any info disclosure.
      return false;
      // no such entry exist, only disclose underlying information if it is an
      // internal (broad meaning) operation, otherwise let's be safe and forbid
      // any info disclosure for external operations.
      // This will avoid breaking conflicts resolution in replication
      return operation.isInternalOperation()
          || operation.isSynchronizationOperation()
          || operation.isInnerOperation();
    }
    return maySend(operation, new SearchResultEntry(entry, operation
        .getResponseControls()));