You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ha...@apache.org on 2015/04/12 06:47:05 UTC

directory-kerby git commit: DIRKRB-213 Getting identities from zookeeper backend. Contributed by Jiajia

Repository: directory-kerby
Updated Branches:
  refs/heads/master 6928f99b4 -> b61f74964


DIRKRB-213 Getting identities from zookeeper backend. Contributed by Jiajia


Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/b61f7496
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/b61f7496
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/b61f7496

Branch: refs/heads/master
Commit: b61f749647f39816d8de4b17e62bf5d7ac7ce930
Parents: 6928f99
Author: Lin <li...@foxmail.com>
Authored: Sun Apr 12 12:46:37 2015 +0800
Committer: Lin <li...@foxmail.com>
Committed: Sun Apr 12 12:46:37 2015 +0800

----------------------------------------------------------------------
 .../kdc/identitybackend/IdentityZNodeHelper.java         | 10 ++++++++++
 .../kdc/identitybackend/ZookeeperIdentityBackend.java    | 11 ++++++++++-
 .../kerb/identity/backend/ZookeeperBackendTest.java      |  5 +++++
 3 files changed, 25 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b61f7496/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/IdentityZNodeHelper.java
----------------------------------------------------------------------
diff --git a/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/IdentityZNodeHelper.java b/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/IdentityZNodeHelper.java
index 888f35a..dee09e1 100644
--- a/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/IdentityZNodeHelper.java
+++ b/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/IdentityZNodeHelper.java
@@ -19,6 +19,11 @@
  */
 package org.apache.kerby.kerberos.kdc.identitybackend;
 
+import org.apache.zookeeper.KeeperException;
+import org.apache.zookeeper.ZooKeeper;
+
+import java.util.List;
+
 public class IdentityZNodeHelper {
 
     private final static String IDENTITIES_ZNODE_NAME = "identities";
@@ -94,4 +99,9 @@ public class IdentityZNodeHelper {
     public static String getEncryptionKeyNoZNode(String principalName, String type) {
         return ZKUtil.joinZNode(getKeyTypeZNode(principalName, type), ENCRYPTION_KEY_NO_ZNODE_NAME);
     }
+
+    public static List<String> getIdentityNames(ZooKeeper zk) throws KeeperException {
+        List<String> identityNames = ZKUtil.listChildrenNoWatch(zk, getIdentitiesZNode());
+        return identityNames;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b61f7496/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
----------------------------------------------------------------------
diff --git a/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java b/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
index def02ad..47a507b 100644
--- a/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
+++ b/kerby-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
@@ -34,6 +34,7 @@ import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
 
@@ -189,7 +190,15 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend
 
     @Override
     public List<String> getIdentities(int start, int limit) {
-        return null;
+        List<String> identityNames = null;
+        try {
+            // The identities getting from zookeeper is unordered
+            identityNames = IdentityZNodeHelper.getIdentityNames(zooKeeper);
+        } catch (KeeperException e) {
+            LOG.error("Fail to get identities from zookeeper", e);
+        }
+        Collections.sort(identityNames);
+        return identityNames.subList(start, limit);
     }
 
     private void setIdentity(KrbIdentity identity) throws KeeperException {

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b61f7496/kerby-backend/zookeeper-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/ZookeeperBackendTest.java
----------------------------------------------------------------------
diff --git a/kerby-backend/zookeeper-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/ZookeeperBackendTest.java b/kerby-backend/zookeeper-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/ZookeeperBackendTest.java
index 6225845..cfaf576 100644
--- a/kerby-backend/zookeeper-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/ZookeeperBackendTest.java
+++ b/kerby-backend/zookeeper-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/ZookeeperBackendTest.java
@@ -78,4 +78,9 @@ public class ZookeeperBackendTest extends BackendTest {
     public void testDelete() {
         super.testDelete(backend);
     }
+
+    @Test
+    public void testGetIdentities() {
+        super.testGetIdentities(backend);
+    }
 }