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 01:32:55 UTC
directory-kerberos git commit: Almost done with identity backend test
framework
Repository: directory-kerberos
Updated Branches:
refs/heads/master 2e13e938a -> a18fbd8bf
Almost done with identity backend test framework
Project: http://git-wip-us.apache.org/repos/asf/directory-kerberos/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerberos/commit/a18fbd8b
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerberos/tree/a18fbd8b
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerberos/diff/a18fbd8b
Branch: refs/heads/master
Commit: a18fbd8bf5883100317f2350cf46ea068210f147
Parents: 2e13e93
Author: Drankye <dr...@gmail.com>
Authored: Mon Mar 16 08:32:41 2015 +0800
Committer: Drankye <dr...@gmail.com>
Committed: Mon Mar 16 08:32:41 2015 +0800
----------------------------------------------------------------------
kdc-backend/json-backend/pom.xml | 12 +++
.../kerb/identity/backend/JsonBackendTest.java | 38 +++++++
kdc-tool/pom.xml | 2 +-
.../kerberos/kerb/common/EncryptionUtil.java | 11 +-
kerby-kerb/kerb-identity-test/pom.xml | 56 ++++++++++
.../kerb/identity/backend/BackendTest.java | 101 +++++++++++++++++++
kerby-kerb/kerb-identity/pom.xml | 5 -
.../kerberos/kerb/identity/KrbIdentity.java | 39 +++++++
.../kerb/identity/backend/BackendTest.java | 77 --------------
kerby-kerb/pom.xml | 1 +
10 files changed, 255 insertions(+), 87 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/a18fbd8b/kdc-backend/json-backend/pom.xml
----------------------------------------------------------------------
diff --git a/kdc-backend/json-backend/pom.xml b/kdc-backend/json-backend/pom.xml
index db2145f..6f69af5 100644
--- a/kdc-backend/json-backend/pom.xml
+++ b/kdc-backend/json-backend/pom.xml
@@ -42,10 +42,22 @@
<version>${project.version}</version>
</dependency>
<dependency>
+ <groupId>org.apache.kerby</groupId>
+ <artifactId>kerb-identity-test</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${json.version}</version>
<scope>compile</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-kerberos/blob/a18fbd8b/kdc-backend/json-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/JsonBackendTest.java
----------------------------------------------------------------------
diff --git a/kdc-backend/json-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/JsonBackendTest.java b/kdc-backend/json-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/JsonBackendTest.java
new file mode 100644
index 0000000..71194a3
--- /dev/null
+++ b/kdc-backend/json-backend/src/test/java/org/apache/kerby/kerberos/kerb/identity/backend/JsonBackendTest.java
@@ -0,0 +1,38 @@
+/**
+ * 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.junit.Test;
+
+/**
+ * Json backend test
+ */
+public class JsonBackendTest extends BackendTest {
+ private IdentityBackend backend;
+
+ public void setup() {
+
+ }
+
+ @Test
+ public void testGet() {
+ super.testGet(backend);
+ }
+}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/a18fbd8b/kdc-tool/pom.xml
----------------------------------------------------------------------
diff --git a/kdc-tool/pom.xml b/kdc-tool/pom.xml
index 6f75fd4..8c486d4 100644
--- a/kdc-tool/pom.xml
+++ b/kdc-tool/pom.xml
@@ -27,7 +27,7 @@
<packaging>pom</packaging>
<modules>
- <module>kinit</module>
+ <module>client-tool</module>
<module>token-tool</module>
</modules>
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/a18fbd8b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/common/EncryptionUtil.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/common/EncryptionUtil.java b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/common/EncryptionUtil.java
index 86944b0..ce48f67 100644
--- a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/common/EncryptionUtil.java
+++ b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/common/EncryptionUtil.java
@@ -35,8 +35,10 @@ import java.util.List;
public class EncryptionUtil {
- public static List<EncryptionKey> generateKeys(List<EncryptionType> encryptionTypes) throws KrbException {
- List<EncryptionKey> results = new ArrayList<EncryptionKey>(encryptionTypes.size());
+ public static List<EncryptionKey> generateKeys(
+ List<EncryptionType> encryptionTypes) throws KrbException {
+ List<EncryptionKey> results =
+ new ArrayList<EncryptionKey>(encryptionTypes.size());
for (EncryptionType eType : encryptionTypes) {
EncryptionKey encKey = EncryptionHandler.random2Key(eType);
results.add(encKey);
@@ -45,8 +47,9 @@ public class EncryptionUtil {
return results;
}
- public static List<EncryptionKey> generateKeys(String principal, String passwd,
- List<EncryptionType> encryptionTypes) throws KrbException {
+ public static List<EncryptionKey> generateKeys(
+ String principal, String passwd,
+ List<EncryptionType> encryptionTypes) throws KrbException {
List<EncryptionKey> results = new ArrayList<EncryptionKey>(encryptionTypes.size());
for (EncryptionType eType : encryptionTypes) {
EncryptionKey encKey = EncryptionHandler.string2Key(principal, passwd, eType);
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/a18fbd8b/kerby-kerb/kerb-identity-test/pom.xml
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-identity-test/pom.xml b/kerby-kerb/kerb-identity-test/pom.xml
new file mode 100644
index 0000000..b288ee6
--- /dev/null
+++ b/kerby-kerb/kerb-identity-test/pom.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed 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. See accompanying LICENSE file.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.kerby</groupId>
+ <artifactId>kerby-kerb</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>kerb-identity-test</artifactId>
+
+ <name>Kerby-kerb Identity Test</name>
+ <description>Kerby-kerb Identity Test</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.kerby</groupId>
+ <artifactId>kerby-config</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.kerby</groupId>
+ <artifactId>kerb-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.kerby</groupId>
+ <artifactId>kerb-crypto</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.kerby</groupId>
+ <artifactId>kerb-common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.kerby</groupId>
+ <artifactId>kerb-identity</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+</project>
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/a18fbd8b/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java b/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java
new file mode 100644
index 0000000..3f2a4d7
--- /dev/null
+++ b/kerby-kerb/kerb-identity-test/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java
@@ -0,0 +1,101 @@
+/**
+ * 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.kerberos.kerb.KrbException;
+import org.apache.kerby.kerberos.kerb.common.EncryptionUtil;
+import org.apache.kerby.kerberos.kerb.identity.KrbIdentity;
+import org.apache.kerby.kerberos.kerb.spec.KerberosTime;
+import org.apache.kerby.kerberos.kerb.spec.common.EncryptionKey;
+import org.apache.kerby.kerberos.kerb.spec.common.EncryptionType;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+
+/**
+ * A common backend test utility
+ */
+public abstract class BackendTest {
+
+ static final String TEST_PRINCIPAL = "test@EXAMPLE.COM";
+
+ static final EncryptionType[] encTypes = new EncryptionType[]{
+ EncryptionType.AES128_CTS,
+ EncryptionType.AES256_CTS,
+ EncryptionType.ARCFOUR_HMAC,
+ EncryptionType.CAMELLIA128_CTS,
+ EncryptionType.CAMELLIA256_CTS_CMAC
+ };
+
+ protected void testGet(IdentityBackend backend) {
+
+ }
+
+ protected void testStore(IdentityBackend backend) {
+ KrbIdentity kid = createOneIdentity(TEST_PRINCIPAL);
+ backend.addIdentity(kid);
+ KrbIdentity kid2 = backend.getIdentity(TEST_PRINCIPAL);
+ // kid == kid2
+ }
+
+ protected void testUpdate(IdentityBackend backend) {
+
+ }
+
+ protected void testDelete(IdentityBackend backend) {
+
+ }
+
+ protected KrbIdentity[] createManyIdentities() {
+ return new KrbIdentity[] {
+ createOneIdentity("test1@EXAMPLE.COM"),
+ createOneIdentity("test2@EXAMPLE.COM"),
+ createOneIdentity("test3@EXAMPLE.COM"),
+ createOneIdentity("test4@EXAMPLE.COM"),
+ createOneIdentity("test5@EXAMPLE.COM"),
+ createOneIdentity("test6@EXAMPLE.COM"),
+ };
+ }
+ protected KrbIdentity createOneIdentity(String principal) {
+ KrbIdentity kid = new KrbIdentity(principal);
+ kid.setCreatedTime(KerberosTime.now());
+ kid.setExpireTime(KerberosTime.NEVER);
+ kid.setDisabled(false);
+ kid.setKeyVersion(1);
+ kid.setLocked(false);
+ kid.addKeys(generateKeys(kid.getPrincipalName()));
+
+ return kid;
+ }
+
+ protected List<EncryptionKey> generateKeys(String principal) {
+ String passwd = UUID.randomUUID().toString();
+ try {
+ return EncryptionUtil.generateKeys(principal, passwd, getEncryptionTypes());
+ } catch (KrbException e) {
+ throw new RuntimeException("Failed to create keys", e);
+ }
+ }
+
+ protected List<EncryptionType> getEncryptionTypes() {
+ return Arrays.asList(encTypes);
+ }
+}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/a18fbd8b/kerby-kerb/kerb-identity/pom.xml
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-identity/pom.xml b/kerby-kerb/kerb-identity/pom.xml
index edf2f93..d2dce3f 100644
--- a/kerby-kerb/kerb-identity/pom.xml
+++ b/kerby-kerb/kerb-identity/pom.xml
@@ -37,10 +37,5 @@
<artifactId>kerb-core</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.kerby</groupId>
- <artifactId>kerb-crypto</artifactId>
- <version>${project.version}</version>
- </dependency>
</dependencies>
</project>
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/a18fbd8b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/KrbIdentity.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/KrbIdentity.java b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/KrbIdentity.java
index 6402248..6fbb73e 100644
--- a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/KrbIdentity.java
+++ b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/KrbIdentity.java
@@ -123,4 +123,43 @@ public class KrbIdentity {
public int getKeyVersion() {
return keyVersion;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ KrbIdentity identity = (KrbIdentity) o;
+
+ if (disabled != identity.disabled) return false;
+ if (kdcFlags != identity.kdcFlags) return false;
+ if (keyVersion != identity.keyVersion) return false;
+ if (locked != identity.locked) return false;
+ if (createdTime != null ? !createdTime.equals(identity.createdTime) :
+ identity.createdTime != null)
+ return false;
+ if (expireTime != null ? !expireTime.equals(identity.expireTime) :
+ identity.expireTime != null)
+ return false;
+ if (keys != null ? !keys.equals(identity.keys) : identity.keys != null)
+ return false;
+ if (principalName != null ? !principalName.equals(
+ identity.principalName) : identity.principalName != null)
+ return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = principalName != null ? principalName.hashCode() : 0;
+ result = 31 * result + keyVersion;
+ result = 31 * result + kdcFlags;
+ result = 31 * result + (disabled ? 1 : 0);
+ result = 31 * result + (locked ? 1 : 0);
+ result = 31 * result + (expireTime != null ? expireTime.hashCode() : 0);
+ result = 31 * result + (createdTime != null ? createdTime.hashCode() : 0);
+ result = 31 * result + (keys != null ? keys.hashCode() : 0);
+ return result;
+ }
}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/a18fbd8b/kerby-kerb/kerb-identity/src/test/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-identity/src/test/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java b/kerby-kerb/kerb-identity/src/test/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java
deleted file mode 100644
index aa71a9a..0000000
--- a/kerby-kerb/kerb-identity/src/test/org/apache/kerby/kerberos/kerb/identity/backend/BackendTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * 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.kerberos.kerb.identity.IdentityService;
-import org.apache.kerby.kerberos.kerb.identity.KrbIdentity;
-import org.apache.kerby.kerberos.kerb.spec.KerberosTime;
-import org.apache.kerby.kerberos.kerb.spec.common.EncryptionKey;
-import org.apache.kerby.kerberos.kerb.spec.common.EncryptionType;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * A common backend test utility
- */
-public abstract class BackendTest {
-
- static final EncryptionType[] encTypes = new EncryptionType[]{
- EncryptionType.AES128_CTS,
- EncryptionType.AES256_CTS,
- EncryptionType.ARCFOUR_HMAC,
- EncryptionType.CAMELLIA128_CTS,
- EncryptionType.CAMELLIA256_CTS_CMAC
- };
-
- protected void testStoreAndGet(IdentityService identityService) {
- KrbIdentity[] ids = createManyIdentities();
- //identityService.addIdentity();
- }
-
- protected KrbIdentity[] createManyIdentities() {
- return new KrbIdentity[] {
- createOneIdentity("test@EXAMPLE.COM"),
- createOneIdentity("test1@EXAMPLE.COM"),
- createOneIdentity("test2@EXAMPLE.COM"),
- createOneIdentity("test3@EXAMPLE.COM"),
- createOneIdentity("test4@EXAMPLE.COM"),
- createOneIdentity("test5@EXAMPLE.COM"),
- createOneIdentity("test6@EXAMPLE.COM"),
- };
- }
- protected KrbIdentity createOneIdentity(String principal) {
- KrbIdentity kid = new KrbIdentity(principal);
- kid.setCreatedTime(KerberosTime.now());
- kid.setExpireTime(KerberosTime.NEVER);
- kid.setDisabled(false);
- kid.setKeyVersion(1);
- kid.setLocked(false);
- kid.addKeys(generateKeys(kid.getPrincipalName()));
-
- return kid;
- }
-
- protected abstract List<EncryptionKey> generateKeys(String principal);
-
- protected List<EncryptionType> getEncryptionTypes() {
- return Arrays.asList(encTypes);
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/a18fbd8b/kerby-kerb/pom.xml
----------------------------------------------------------------------
diff --git a/kerby-kerb/pom.xml b/kerby-kerb/pom.xml
index 1f4d4cf..c881beb 100644
--- a/kerby-kerb/pom.xml
+++ b/kerby-kerb/pom.xml
@@ -33,6 +33,7 @@
<module>kerb-util</module>
<module>kerb-crypto</module>
<module>kerb-identity</module>
+ <module>kerb-identity-test</module>
<module>kerb-client</module>
<module>kerb-server</module>
<module>kerb-kdc-test</module>