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);