You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pl...@apache.org on 2015/07/06 09:59:40 UTC
directory-kerby git commit: [DIRKRB-322]-Adding JavaDoc for Class
that implementing IdentityService. Contributed by Yaning.
Repository: directory-kerby
Updated Branches:
refs/heads/master a5efcfba6 -> cc6749095
[DIRKRB-322]-Adding JavaDoc for Class that implementing IdentityService. Contributed by Yaning.
Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/cc674909
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/cc674909
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/cc674909
Branch: refs/heads/master
Commit: cc6749095107994685265eef48a15ffc995cb121
Parents: a5efcfb
Author: plusplusjiajia <ji...@intel.com>
Authored: Mon Jul 6 16:04:41 2015 +0800
Committer: plusplusjiajia <ji...@intel.com>
Committed: Mon Jul 6 16:04:41 2015 +0800
----------------------------------------------------------------------
.../identitybackend/JsonIdentityBackend.java | 34 ++++++++++---
.../identitybackend/LdapIdentityBackend.java | 52 +++++++++++++++++++-
.../java/org/apache/kerby/MavibotBackend.java | 29 +++++------
.../ZookeeperIdentityBackend.java | 37 +++++++++++++-
.../backend/AbstractIdentityBackend.java | 44 +++++++++++++++++
.../identity/backend/MemoryIdentityBackend.java | 20 +++++++-
6 files changed, 190 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cc674909/kerby-backend/json-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/JsonIdentityBackend.java
----------------------------------------------------------------------
diff --git a/kerby-backend/json-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/JsonIdentityBackend.java b/kerby-backend/json-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/JsonIdentityBackend.java
index 199c72f..7c28d6c 100644
--- a/kerby-backend/json-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/JsonIdentityBackend.java
+++ b/kerby-backend/json-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/JsonIdentityBackend.java
@@ -46,9 +46,8 @@ public class JsonIdentityBackend extends AbstractIdentityBackend {
private File jsonKdbFile;
private Gson gson;
- /**
- * Identities loaded from file
- */
+
+ // Identities loaded from file
private Map<String, KrbIdentity> ids;
private long kdbFileTimeStamp;
@@ -64,6 +63,9 @@ public class JsonIdentityBackend extends AbstractIdentityBackend {
setConfig(config);
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public void initialize() {
super.initialize();
@@ -93,7 +95,7 @@ public class JsonIdentityBackend extends AbstractIdentityBackend {
}
/**
- * check kdb file timestamp to see if it's changed or not. If
+ * Check kdb file timestamp to see if it's changed or not. If
* necessary load the kdb again.
*/
private void checkAndLoad() {
@@ -118,12 +120,18 @@ public class JsonIdentityBackend extends AbstractIdentityBackend {
}
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected KrbIdentity doGetIdentity(String principalName) {
checkAndLoad();
return ids.get(principalName);
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected KrbIdentity doAddIdentity(KrbIdentity identity) {
checkAndLoad();
@@ -139,6 +147,9 @@ public class JsonIdentityBackend extends AbstractIdentityBackend {
return identity;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected KrbIdentity doUpdateIdentity(KrbIdentity identity) {
checkAndLoad();
@@ -151,6 +162,9 @@ public class JsonIdentityBackend extends AbstractIdentityBackend {
return identity;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected void doDeleteIdentity(String principalName) {
checkAndLoad();
@@ -176,6 +190,9 @@ public class JsonIdentityBackend extends AbstractIdentityBackend {
return getIdentities().subList(start, start + limit);
}
+ /**
+ * Get all principal names from the backend
+ */
private List<String> getIdentities() {
List<String> principals = new ArrayList<>(ids.keySet());
Collections.sort(principals);
@@ -183,6 +200,9 @@ public class JsonIdentityBackend extends AbstractIdentityBackend {
return principals;
}
+ /**
+ *Create a gson
+ */
private void createGson() {
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(EncryptionKey.class, new EncryptionKeyAdapter());
@@ -193,6 +213,10 @@ public class JsonIdentityBackend extends AbstractIdentityBackend {
gson = gsonBuilder.create();
}
+ /**
+ * Write ids into a file
+ * @param ids the ids to write into the json file
+ */
private void idsToFile(Map<String, KrbIdentity> ids) {
String newFileJson = gson.toJson(ids);
try {
@@ -201,6 +225,4 @@ public class JsonIdentityBackend extends AbstractIdentityBackend {
throw new RuntimeException("Failed to write file", e);
}
}
-
-
}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cc674909/kerby-backend/ldap-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/LdapIdentityBackend.java
----------------------------------------------------------------------
diff --git a/kerby-backend/ldap-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/LdapIdentityBackend.java b/kerby-backend/ldap-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/LdapIdentityBackend.java
index 4ebd35c..360aeaa 100644
--- a/kerby-backend/ldap-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/LdapIdentityBackend.java
+++ b/kerby-backend/ldap-backend/src/main/java/org/apache/kerby/kerberos/kdc/identitybackend/LdapIdentityBackend.java
@@ -53,7 +53,9 @@ import java.util.Map;
*
*/
public class LdapIdentityBackend extends AbstractIdentityBackend {
+ //The LdapConnection, may be LdapNetworkConnection or LdapCoreSessionConnection
private LdapConnection connection;
+ //This is used as a flag to represent the connection whether is LdapNetworkConnection object or not
private boolean isLdapNetworkConnection;
public LdapIdentityBackend() {
@@ -63,18 +65,28 @@ public class LdapIdentityBackend extends AbstractIdentityBackend {
/**
* Constructing an instance using specified config that contains anything
* to be used to initialize an LdapConnection and necessary baseDn.
- * @param config
+ * @param config . The config is used to config the backend.
*/
public LdapIdentityBackend(Config config) {
setConfig(config);
this.isLdapNetworkConnection = true;
}
+ /**
+ * Constructing an instance using a LdapConnection and a specified config that contains anything
+ * to be used to initialize a necessary baseDn.
+ * @param config,connection .The config is used to config the backend, and the connection is used to
+ * to handle add/delete/update/get operations, may be a LdapNetworkConnection
+ * or a LdapCoreSessionConnection.
+ */
public LdapIdentityBackend(Config config, LdapConnection connection) throws LdapException {
setConfig(config);
this.connection = connection;
}
+ /**
+ * Start the connection for the initialize()
+ */
public void startConnection() throws LdapException {
if (isLdapNetworkConnection == true) {
this.connection = new LdapNetworkConnection(getConfig().getString("host"),
@@ -84,6 +96,9 @@ public class LdapIdentityBackend extends AbstractIdentityBackend {
getConfig().getString("admin_pw"));
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public void initialize() {
super.initialize();
@@ -94,6 +109,9 @@ public class LdapIdentityBackend extends AbstractIdentityBackend {
}
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public void stop() {
try {
@@ -105,17 +123,27 @@ public class LdapIdentityBackend extends AbstractIdentityBackend {
}
}
+ /**
+ * Close the connection for stop()
+ */
public void closeConnection() throws LdapException, IOException {
if (this.connection.isConnected()) {
this.connection.close();
}
}
+ /**
+ * Convert a KerberosTime type obeject to a generalized time form of String
+ * @param kerberosTime The kerberostime to convert
+ */
private String toGeneralizedTime(KerberosTime kerberosTime) {
GeneralizedTime generalizedTime = new GeneralizedTime(kerberosTime.getValue());
return generalizedTime.toString();
}
+ /**
+ * An inner class, used to encapsulate key information
+ */
class KeysInfo{
private String[] etypes;
private byte[][] keys;
@@ -148,6 +176,9 @@ public class LdapIdentityBackend extends AbstractIdentityBackend {
}
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected KrbIdentity doAddIdentity(KrbIdentity identity) {
String principalName = identity.getPrincipalName();
@@ -182,6 +213,9 @@ public class LdapIdentityBackend extends AbstractIdentityBackend {
return identity;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected KrbIdentity doGetIdentity(String principalName) {
KrbIdentity krbIdentity = new KrbIdentity(principalName);
@@ -210,6 +244,9 @@ public class LdapIdentityBackend extends AbstractIdentityBackend {
return krbIdentity;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected KrbIdentity doUpdateIdentity(KrbIdentity identity) {
String principalName = identity.getPrincipalName();
@@ -233,6 +270,9 @@ public class LdapIdentityBackend extends AbstractIdentityBackend {
return identity;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected void doDeleteIdentity(String principalName) {
try {
@@ -243,6 +283,12 @@ public class LdapIdentityBackend extends AbstractIdentityBackend {
}
}
+ /**
+ * Used to convert a dn of String to a Dn object
+ * @param principalName The principal name to be convert.
+ * @return
+ * @throws LdapInvalidDnException if a remote exception occurs.
+ */
private Dn toDn(String principalName) throws LdapInvalidDnException {
String[] names = principalName.split("@");
String uid = names[0];
@@ -264,7 +310,9 @@ public class LdapIdentityBackend extends AbstractIdentityBackend {
return getIdentities().subList(start, start + limit);
}
-
+ /**
+ * Get all principal names from the ldap server, invoked by getIdentities(int start, int limit)
+ */
private List<String> getIdentities() {
List<String> identityNames = new ArrayList<>();
EntryCursor cursor;
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cc674909/kerby-backend/mavibot/src/main/java/org/apache/kerby/MavibotBackend.java
----------------------------------------------------------------------
diff --git a/kerby-backend/mavibot/src/main/java/org/apache/kerby/MavibotBackend.java b/kerby-backend/mavibot/src/main/java/org/apache/kerby/MavibotBackend.java
index c79a43f..27068c2 100644
--- a/kerby-backend/mavibot/src/main/java/org/apache/kerby/MavibotBackend.java
+++ b/kerby-backend/mavibot/src/main/java/org/apache/kerby/MavibotBackend.java
@@ -19,18 +19,7 @@
*/
package org.apache.kerby;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.directory.mavibot.btree.BTree;
-import org.apache.directory.mavibot.btree.BTreeFactory;
-import org.apache.directory.mavibot.btree.BTreeTypeEnum;
-import org.apache.directory.mavibot.btree.KeyCursor;
-import org.apache.directory.mavibot.btree.PersistedBTreeConfiguration;
-import org.apache.directory.mavibot.btree.RecordManager;
-import org.apache.directory.mavibot.btree.Tuple;
+import org.apache.directory.mavibot.btree.*;
import org.apache.directory.mavibot.btree.exception.KeyNotFoundException;
import org.apache.directory.mavibot.btree.serializer.StringSerializer;
import org.apache.kerby.kerberos.kerb.identity.KrbIdentity;
@@ -38,22 +27,27 @@ import org.apache.kerby.kerberos.kerb.identity.backend.AbstractIdentityBackend;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* A backend based on Apache Mavibot(an MVCC BTree library).
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
public class MavibotBackend extends AbstractIdentityBackend {
- /** the RecordManager of Mavibot */
+ //The RecordManager of Mavibot
private RecordManager rm;
- /** the BTree holding all data */
+ //The BTree holding all data
private BTree<String, KrbIdentity> database;
- /** name of the database */
+ //Name of the database
private static final String DATA_TREE = "kerby-data";
- /** name of the database file */
+ // Name of the database file
private static final String DATABASE_NAME = "kerby-data.db";
private static final Logger LOG = LoggerFactory.getLogger(MavibotBackend.class);
@@ -213,6 +207,9 @@ public class MavibotBackend extends AbstractIdentityBackend {
}
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public void stop() {
try {
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cc674909/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 d7e6864..de9281b 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
@@ -69,12 +69,18 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend
setConfig(config);
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public void initialize() {
super.initialize();
init();
}
+ /**
+ * Init Zookeeper Server and connection service, used to initialize the backend.
+ */
private void init() {
zkHost = getConfig().getString(ZKConfKey.ZK_HOST);
zkPort = getConfig().getInt(ZKConfKey.ZK_PORT);
@@ -136,6 +142,9 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend
// TODO: load the kdb file from zookeeper
}
+ /**
+ * Start the Zookeeper server
+ */
private void startEmbeddedZookeeper() {
Properties startupProperties = new Properties();
@@ -169,13 +178,16 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend
/**
* This will watch all the kdb update event so that it's timely synced.
- * @param event
+ * @param event The kdb update event ot watch.
*/
@Override
public void process(WatchedEvent event) {
System.out.print("I got an event: " + event);
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected KrbIdentity doGetIdentity(String principalName) {
principalName = replaceSlash(principalName);
@@ -200,6 +212,9 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend
return krb;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected KrbIdentity doAddIdentity(KrbIdentity identity) {
if (doGetIdentity(identity.getPrincipalName()) != null) {
@@ -214,6 +229,9 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend
return identity;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected KrbIdentity doUpdateIdentity(KrbIdentity identity) {
if (doGetIdentity(identity.getPrincipalName()) == null) {
@@ -228,6 +246,9 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend
return identity;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected void doDeleteIdentity(String principalName) {
principalName = replaceSlash(principalName);
@@ -254,6 +275,10 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend
return getIdentities().subList(start, start + limit);
}
+ /**
+ * Get all of the identity names
+ * @return
+ */
public List<String> getIdentities() {
List<String> identityNames = null;
@@ -277,6 +302,11 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend
return newIdentities;
}
+ /**
+ * Set the identity to add or update an indentity in the backend.
+ * @param identity . The identity to update
+ * @throws KeeperException
+ */
private void setIdentity(KrbIdentity identity) throws KeeperException {
String principalName = identity.getPrincipalName();
principalName = replaceSlash(principalName);
@@ -291,6 +321,11 @@ public class ZookeeperIdentityBackend extends AbstractIdentityBackend
identityZNode.setLocked(identity.isLocked());
}
+ /**
+ * Use "\\" to replace "/" in a String object.
+ * @param name . The the name string to convert
+ * @return
+ */
private String replaceSlash(String name) {
if(name.contains("/")) {
name = name.replace("/", "\\");
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cc674909/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/AbstractIdentityBackend.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/AbstractIdentityBackend.java b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/AbstractIdentityBackend.java
index 07f367c..07c96f6 100644
--- a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/AbstractIdentityBackend.java
+++ b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/AbstractIdentityBackend.java
@@ -44,6 +44,9 @@ public abstract class AbstractIdentityBackend
this.cacheSize = cacheSize;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public void initialize() {
idCache = new LinkedHashMap<String, KrbIdentity>(cacheSize) {
@@ -54,25 +57,41 @@ public abstract class AbstractIdentityBackend
};
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public void start() {
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public void stop() {
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public void release() {
idCache.clear();
}
+ /**
+ * Get (principal, KrbIdentity) pairs from the cache.
+ * @return
+ */
protected Map<String, KrbIdentity> getCache() {
return idCache;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public KrbIdentity getIdentity(String principalName) {
if (idCache.containsKey(principalName)) {
@@ -87,8 +106,15 @@ public abstract class AbstractIdentityBackend
return identity;
}
+ /**
+ * Add an identity, invoked by addIdentity.
+ * @param principalName
+ */
protected abstract KrbIdentity doGetIdentity(String principalName);
+ /**
+ * {@inheritDoc}
+ */
@Override
public KrbIdentity addIdentity(KrbIdentity identity) {
KrbIdentity added = doAddIdentity(identity);
@@ -99,8 +125,15 @@ public abstract class AbstractIdentityBackend
return added;
}
+ /**
+ * Add an identity, invoked by addIdentity.
+ * @param identity
+ */
protected abstract KrbIdentity doAddIdentity(KrbIdentity identity);
+ /**
+ * {@inheritDoc}
+ */
@Override
public KrbIdentity updateIdentity(KrbIdentity identity) {
KrbIdentity updated = doUpdateIdentity(identity);
@@ -111,8 +144,15 @@ public abstract class AbstractIdentityBackend
return updated;
}
+ /**
+ * Update an identity, invoked by updateIdentity.
+ * @param identity
+ */
protected abstract KrbIdentity doUpdateIdentity(KrbIdentity identity);
+ /**
+ * {@inheritDoc}
+ */
@Override
public void deleteIdentity(String principalName) {
if (idCache.containsKey(principalName)) {
@@ -122,6 +162,10 @@ public abstract class AbstractIdentityBackend
doDeleteIdentity(principalName);
}
+ /**
+ * Delete an identity, invoked by deleteIndentity.
+ * @param principalName
+ */
protected abstract void doDeleteIdentity(String principalName);
}
http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/cc674909/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/MemoryIdentityBackend.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/MemoryIdentityBackend.java b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/MemoryIdentityBackend.java
index 2129661..5ac58bd 100644
--- a/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/MemoryIdentityBackend.java
+++ b/kerby-kerb/kerb-identity/src/main/java/org/apache/kerby/kerberos/kerb/identity/backend/MemoryIdentityBackend.java
@@ -35,26 +35,41 @@ public class MemoryIdentityBackend extends AbstractIdentityBackend {
setCacheSize(10000000); // Just no idea, configurable ?
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected KrbIdentity doGetIdentity(String principalName) {
return null;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected KrbIdentity doAddIdentity(KrbIdentity identity) {
return identity;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected KrbIdentity doUpdateIdentity(KrbIdentity identity) {
return identity;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
protected void doDeleteIdentity(String principalName) {
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public List<String> getIdentities(int start, int limit) {
List<String> identities = getIdentities();
@@ -64,7 +79,10 @@ public class MemoryIdentityBackend extends AbstractIdentityBackend {
return identities.subList(start, start + limit);
}
-
+ /**
+ * Get all of the identity names
+ * @return
+ */
private List<String> getIdentities() {
List<String> identities = new ArrayList<>(getCache().keySet());
Collections.sort(identities);