You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by dr...@apache.org on 2015/03/16 23:55:28 UTC
directory-kerby git commit: WIP: Working on ZK based backend
Repository: directory-kerby
Updated Branches:
refs/heads/master e98333ad7 -> 58866a42b
WIP: Working on ZK based backend
Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/58866a42
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/58866a42
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/58866a42
Branch: refs/heads/master
Commit: 58866a42b48c5a451950c6e6b0d00cfa59ad951f
Parents: e98333a
Author: Drankye <dr...@gmail.com>
Authored: Tue Mar 17 06:52:57 2015 +0800
Committer: Drankye <dr...@gmail.com>
Committed: Tue Mar 17 06:52:57 2015 +0800
----------------------------------------------------------------------
kdc-backend/ldap-backend/pom.xml | 12 ++++
.../kerb/identity/backend/LdapBackendTest.java | 41 ++++++++++++
kdc-backend/zookeeper-backend/pom.xml | 6 ++
.../kerberos/kdc/identitybackend/ZKConfKey.java | 5 +-
.../ZookeeperIdentityBackend.java | 11 +++
.../identity/backend/ZookeeperBackendTest.java | 70 ++++++++++++++++++++
6 files changed, 144 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/58866a42/kdc-backend/ldap-backend/pom.xml
----------------------------------------------------------------------
diff --git a/kdc-backend/ldap-backend/pom.xml b/kdc-backend/ldap-backend/pom.xml
index 45d1bdf..545c5a9 100644
--- a/kdc-backend/ldap-backend/pom.xml
+++ b/kdc-backend/ldap-backend/pom.xml
@@ -46,5 +46,17 @@
<artifactId>api-ldap-client-api</artifactId>
<version>${ldap.api.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.kerby</groupId>
+ <artifactId>kerb-identity-test</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/58866a42/kdc-backend/ldap-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/LdapBackendTest.java
----------------------------------------------------------------------
diff --git a/kdc-backend/ldap-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/LdapBackendTest.java b/kdc-backend/ldap-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/LdapBackendTest.java
new file mode 100644
index 0000000..8361136
--- /dev/null
+++ b/kdc-backend/ldap-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/LdapBackendTest.java
@@ -0,0 +1,41 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.kerby.kerberos.kerb.identity.backend;
+
+import org.apache.kerby.config.Conf;
+import org.apache.kerby.kerberos.kdc.identitybackend.LdapIdentityBackend;
+import org.junit.Test;
+
+/**
+ * Ldap backend test
+ */
+public class LdapBackendTest extends BackendTest {
+ private IdentityBackend backend;
+
+ public void setup() {
+ Conf config = new Conf();
+ backend = new LdapIdentityBackend(config);
+ }
+
+ @Test
+ public void testGet() {
+ super.testGet(backend);
+ }
+}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/58866a42/kdc-backend/zookeeper-backend/pom.xml
----------------------------------------------------------------------
diff --git a/kdc-backend/zookeeper-backend/pom.xml b/kdc-backend/zookeeper-backend/pom.xml
index 3e5373d..aed9fa1 100644
--- a/kdc-backend/zookeeper-backend/pom.xml
+++ b/kdc-backend/zookeeper-backend/pom.xml
@@ -46,5 +46,11 @@
<artifactId>zookeeper</artifactId>
<version>${zookeeper.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.kerby</groupId>
+ <artifactId>kerb-identity-test</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/58866a42/kdc-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZKConfKey.java
----------------------------------------------------------------------
diff --git a/kdc-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZKConfKey.java b/kdc-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZKConfKey.java
index 33e0a2a..a9d798d 100644
--- a/kdc-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZKConfKey.java
+++ b/kdc-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZKConfKey.java
@@ -26,7 +26,10 @@ import org.apache.kerby.config.ConfigKey;
*/
public enum ZKConfKey implements ConfigKey {
ZK_HOST("127.0.0.1"),
- ZK_PORT(9015);
+ ZK_PORT(9015),
+ DATA_DIR,
+ DATA_LOG_DIR
+ ;
private Object defaultValue;
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/58866a42/kdc-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
----------------------------------------------------------------------
diff --git a/kdc-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java b/kdc-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
index 505f360..a1c795b 100644
--- a/kdc-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
+++ b/kdc-backend/zookeeper-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/ZookeeperIdentityBackend.java
@@ -29,6 +29,7 @@ import org.apache.zookeeper.server.ServerConfig;
import org.apache.zookeeper.server.ZooKeeperServerMain;
import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
+import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Properties;
@@ -44,6 +45,8 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend
private Config config;
private String zkHost;
private int zkPort;
+ private File dataDir;
+ private File dataLogDir;
/**
* Constructing an instance using specified config that contains anything
@@ -58,6 +61,9 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend
private void init() {
zkHost = config.getString(ZKConfKey.ZK_HOST);
zkPort = config.getInt(ZKConfKey.ZK_PORT);
+ dataDir = new File(config.getString(ZKConfKey.DATA_DIR));
+ dataLogDir = new File(config.getString(ZKConfKey.DATA_LOG_DIR));
+
startEmbeddedZookeeper();
connectZK();
}
@@ -84,7 +90,11 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend
}
private void startEmbeddedZookeeper() {
+
Properties startupProperties = new Properties();
+ startupProperties.put("dataDir", dataDir.getAbsolutePath());
+ startupProperties.put("dataLogDir", dataLogDir.getAbsolutePath());
+ startupProperties.put("clientPort", zkPort);
QuorumPeerConfig quorumConfiguration = new QuorumPeerConfig();
try {
@@ -102,6 +112,7 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend
try {
zooKeeperServer.runFromConfig(configuration);
} catch (IOException e) {
+ e.printStackTrace();
//log.error("ZooKeeper Failed", e);
}
}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/58866a42/kdc-backend/zookeeper-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/ZookeeperBackendTest.java
----------------------------------------------------------------------
diff --git a/kdc-backend/zookeeper-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/ZookeeperBackendTest.java b/kdc-backend/zookeeper-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/ZookeeperBackendTest.java
new file mode 100644
index 0000000..0c7f231
--- /dev/null
+++ b/kdc-backend/zookeeper-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/ZookeeperBackendTest.java
@@ -0,0 +1,70 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.kerby.kerberos.kerb.identity.backend;
+
+import org.apache.kerby.config.Conf;
+import org.apache.kerby.kerberos.kdc.identitybackend.ZKConfKey;
+import org.apache.kerby.kerberos.kdc.identitybackend.ZookeeperIdentityBackend;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.Properties;
+
+/**
+ * Ldap backend test
+ */
+public class ZookeeperBackendTest extends BackendTest {
+ private static IdentityBackend backend;
+
+ @BeforeClass
+ public static void setup() {
+ Conf config = new Conf();
+
+ Properties prop = new Properties();
+ File testdir = new File(System.getProperty("test.dir", "target"));
+ File instanceDir = new File(testdir, "zookeeper");
+ instanceDir.mkdirs();
+ File dataDir = new File(instanceDir, "data");
+ dataDir.mkdirs();
+ prop.put(ZKConfKey.DATA_DIR.getPropertyKey(), dataDir.getAbsolutePath());
+ File dataLogDir = new File(instanceDir, "log");
+ dataLogDir.mkdirs();
+ prop.put(ZKConfKey.DATA_LOG_DIR.getPropertyKey(), dataLogDir.getAbsolutePath());
+
+ config.addPropertiesConfig(prop);
+
+ backend = new ZookeeperIdentityBackend(config);
+ backend.initialize();
+ backend.start();
+ }
+
+ @Test
+ public void testGet() {
+ super.testGet(backend);
+ }
+
+ @AfterClass
+ public static void tearDown() {
+ backend.stop();
+ backend.release();
+ }
+}