From 5425887fa59196b7ea2474d4893f10bb1a265446 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Thu, 13 Dec 2007 18:16:52 +0000
Subject: [PATCH] Fix for issue 2612.

---
 opendj-sdk/opends/src/ads/org/opends/admin/ads/ADSContext.java |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/opendj-sdk/opends/src/ads/org/opends/admin/ads/ADSContext.java b/opendj-sdk/opends/src/ads/org/opends/admin/ads/ADSContext.java
index 751f4a4..3154f86 100644
--- a/opendj-sdk/opends/src/ads/org/opends/admin/ads/ADSContext.java
+++ b/opendj-sdk/opends/src/ads/org/opends/admin/ads/ADSContext.java
@@ -708,6 +708,28 @@
         SearchResult sr = (SearchResult)ne.next();
         Map<ServerProperty,Object> properties =
           makePropertiesFromServerAttrs(sr.getAttributes());
+        Object keyId = properties.get(ServerProperty.INSTANCE_KEY_ID);
+        if (keyId != null)
+        {
+          try
+          {
+            SearchControls sc1 = new SearchControls();
+
+            sc1.setSearchScope(SearchControls.ONELEVEL_SCOPE);
+            final String attrIDs[] = { "ds-cfg-public-key-certificate;binary" };
+            sc1.setReturningAttributes(attrIDs);
+            SearchResult certEntry =
+              dirContext.search(getInstanceKeysContainerDN(),
+              "(ds-cfg-key-id="+keyId+")", sc).next();
+            Attribute certAttr = certEntry.getAttributes().get(attrIDs[0]);
+            properties.put(ServerProperty.INSTANCE_PUBLIC_KEY_CERTIFICATE,
+                certAttr.get());
+          }
+          catch (NameNotFoundException x)
+          {
+            LOG.log(Level.WARNING, "Could not find public key for "+properties);
+          }
+        }
         result.add(properties);
       }
     }

--
Gitblit v1.10.0