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