Return-Path: X-Original-To: apmail-directory-commits-archive@www.apache.org Delivered-To: apmail-directory-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A6A8A17D97 for ; Mon, 16 Mar 2015 22:55:28 +0000 (UTC) Received: (qmail 14668 invoked by uid 500); 16 Mar 2015 22:55:28 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 14620 invoked by uid 500); 16 Mar 2015 22:55:28 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 14611 invoked by uid 99); 16 Mar 2015 22:55:28 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 16 Mar 2015 22:55:28 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 710EEE1104; Mon, 16 Mar 2015 22:55:28 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: drankye@apache.org To: commits@directory.apache.org Message-Id: <8d7dc8e2cb8747b6b0b00c0d00c6d3d8@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: directory-kerby git commit: WIP: Working on ZK based backend Date: Mon, 16 Mar 2015 22:55:28 +0000 (UTC) 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 Authored: Tue Mar 17 06:52:57 2015 +0800 Committer: Drankye 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 @@ api-ldap-client-api ${ldap.api.version} + + org.apache.kerby + kerb-identity-test + ${project.version} + test + + + junit + junit + 4.12 + test + 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 @@ zookeeper ${zookeeper.version} + + org.apache.kerby + kerb-identity-test + ${project.version} + test + 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(); + } +}