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/05/14 09:51:21 UTC

directory-kerby git commit: [DIRKRB-253]-Config krb5.conf, kdc.conf, backend.conf through environment variables. Contributed by Wei

Repository: directory-kerby
Updated Branches:
  refs/heads/master 40c0c62ba -> f186424f4


[DIRKRB-253]-Config krb5.conf, kdc.conf, backend.conf through environment variables. Contributed by Wei


Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/f186424f
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/f186424f
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/f186424f

Branch: refs/heads/master
Commit: f186424f40fe934025c80c61d48865bded9011fd
Parents: 40c0c62
Author: plusplusjiajia <ji...@intel.com>
Authored: Thu May 14 15:56:07 2015 +0800
Committer: plusplusjiajia <ji...@intel.com>
Committed: Thu May 14 15:56:07 2015 +0800

----------------------------------------------------------------------
 .../kerby/kerberos/kdc/KerbyKdcServer.java      | 14 ++++++++-
 .../client/impl/AbstractInternalKrbClient.java  | 33 +++++++++++++++-----
 .../kerby/kerberos/tool/kadmin/Kadmin.java      | 14 ++++++++-
 3 files changed, 52 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/f186424f/kerby-kdc/src/main/java/org/apache/kerby/kerberos/kdc/KerbyKdcServer.java
----------------------------------------------------------------------
diff --git a/kerby-kdc/src/main/java/org/apache/kerby/kerberos/kdc/KerbyKdcServer.java b/kerby-kdc/src/main/java/org/apache/kerby/kerberos/kdc/KerbyKdcServer.java
index bb0a14c..aaee9c4 100644
--- a/kerby-kdc/src/main/java/org/apache/kerby/kerberos/kdc/KerbyKdcServer.java
+++ b/kerby-kdc/src/main/java/org/apache/kerby/kerberos/kdc/KerbyKdcServer.java
@@ -29,6 +29,7 @@ import org.apache.kerby.kerberos.kerb.spec.base.EncryptionType;
 
 import java.io.File;
 import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 
 /**
@@ -98,7 +99,18 @@ public class KerbyKdcServer extends KdcServer {
             String confDir;
             String workDir;
             if(args.length == 1) {
-                confDir = "/etc/kerby/";
+                String envDir;
+                try {
+                    Map<String, String> mapEnv = System.getenv();
+                    envDir = mapEnv.get("KRB5_KDC_DIR");
+                } catch (SecurityException e) {
+                    envDir = null;
+                }
+                if(envDir != null) {
+                    confDir = envDir;
+                } else {
+                    confDir = "/etc/kerby/";
+                }
                 workDir = "/tmp/";
             } else if (args.length == 3) {
                 confDir = args[1];

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/f186424f/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/impl/AbstractInternalKrbClient.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/impl/AbstractInternalKrbClient.java b/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/impl/AbstractInternalKrbClient.java
index 38b1e8b..662f42a 100644
--- a/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/impl/AbstractInternalKrbClient.java
+++ b/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/impl/AbstractInternalKrbClient.java
@@ -30,6 +30,7 @@ import org.apache.kerby.kerberos.kerb.spec.ticket.TgtTicket;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.Map;
 
 /**
  * A krb client API for applications to interact with KDC
@@ -69,16 +70,34 @@ public abstract class AbstractInternalKrbClient implements InternalKrbClient {
         krbConfig = (KrbConfig) commonOptions.getOptionValue(KrbOption.KRB_CONFIG);
         if (krbConfig == null) {
             krbConfig = new KrbConfig();
-
             File confDir = commonOptions.getDirOption(KrbOption.CONF_DIR);
-            if (confDir == null) {
-                confDir = new File("/etc/"); // for Linux. TODO: fix for Win etc.
-            }
-            if (confDir != null && confDir.exists()) {
-                File kdcConfFile = new File(confDir, "krb5.conf");
-                if (kdcConfFile.exists()) {
+            if(confDir == null) {
+                File kdcConfFile = null;
+                String krb5Conf;
+                try {
+                    Map<String, String> mapEnv = System.getenv();
+                    krb5Conf = mapEnv.get("KRB5_CONFIG");
+                } catch (SecurityException e) {
+                    krb5Conf = null;
+                }
+                if(krb5Conf != null) {
+                    kdcConfFile = new File(krb5Conf);
+                } else {
+                    confDir = new File("/etc/"); // for Linux. TODO: fix for Win etc.
+                    if (confDir.exists()) {
+                        kdcConfFile = new File(confDir, "krb5.conf");
+                    }
+                }
+                if (kdcConfFile != null && kdcConfFile.exists()) {
                     krbConfig.addIniConfig(kdcConfFile);
                 }
+            } else {
+                if (confDir.exists()) {
+                    File kdcConfFile = new File(confDir, "krb5.conf");
+                    if (kdcConfFile.exists()) {
+                        krbConfig.addIniConfig(kdcConfFile);
+                    }
+                }
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/f186424f/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/Kadmin.java
----------------------------------------------------------------------
diff --git a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/Kadmin.java b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/Kadmin.java
index 3c338d3..706d181 100644
--- a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/Kadmin.java
+++ b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/Kadmin.java
@@ -30,6 +30,7 @@ import org.apache.kerby.kerberos.tool.kadmin.executor.RenamePrincipalExecutor;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.Map;
 import java.util.Scanner;
 
 public class Kadmin {
@@ -107,7 +108,18 @@ public class Kadmin {
     private static void initConfig(String[] args) {
         File confDir;
         if (args.length == 0) {
-            confDir = new File("/etc/kerby/");// for Linux. TODO: fix for Win etc.
+            String envDir;
+            try {
+                Map<String, String> mapEnv = System.getenv();
+                envDir = mapEnv.get("KRB5_KDC_DIR");
+            } catch (SecurityException e) {
+                envDir = null;
+            }
+            if(envDir != null) {
+                confDir = new File(envDir);
+            } else {
+                confDir = new File("/etc/kerby/");// for Linux. TODO: fix for Win etc.
+            }
         } else {
             confDir = new File(args[0]);
         }