You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by co...@apache.org on 2022/04/26 11:54:15 UTC
[directory-kerby] branch trunk updated: DIRKRB-758 - No way to specify conf dir for klist
This is an automated email from the ASF dual-hosted git repository.
coheigea pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/directory-kerby.git
The following commit(s) were added to refs/heads/trunk by this push:
new 396533d2 DIRKRB-758 - No way to specify conf dir for klist
396533d2 is described below
commit 396533d2c24ff3d74b08b845b92a1ceca117e24d
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Tue Apr 26 12:53:59 2022 +0100
DIRKRB-758 - No way to specify conf dir for klist
---
.../org/apache/kerby/kerberos/tool/klist/KlistOption.java | 4 +++-
.../org/apache/kerby/kerberos/tool/klist/KlistTool.java | 13 +++++++++----
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistOption.java b/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistOption.java
index e4845636..53449a5d 100644
--- a/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistOption.java
+++ b/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistOption.java
@@ -22,6 +22,7 @@ package org.apache.kerby.kerberos.tool.klist;
import org.apache.kerby.KOption;
import org.apache.kerby.KOptionInfo;
import org.apache.kerby.KOptionType;
+import org.apache.kerby.kerberos.kerb.client.KrbOptionGroup;
public enum KlistOption implements KOption {
NONE(null),
@@ -39,7 +40,8 @@ public enum KlistOption implements KOption {
DISPL_ADDRESS_LIST(new KOptionInfo("-a", "displays the address list")),
NO_REVERSE_RESOLVE(new KOptionInfo("-n", "do not reverse resolve")),
SHOW_KTAB_ENTRY_TS(new KOptionInfo("-t", "shows keytab entry timestamps")),
- SHOW_KTAB_ENTRY_KEY(new KOptionInfo("-K", "show keytab entry keys"));
+ SHOW_KTAB_ENTRY_KEY(new KOptionInfo("-K", "show keytab entry keys")),
+ CONF_DIR(new KOptionInfo("-conf", "conf dir", KrbOptionGroup.KRB, KOptionType.DIR));
private final KOptionInfo optionInfo;
diff --git a/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java b/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java
index 560bfacc..fbc8c4b8 100644
--- a/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java
+++ b/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java
@@ -54,7 +54,7 @@ public class KlistTool {
private static final String USAGE = (OSUtil.isWindows()
? "Usage: bin\\klist.cmd" : "Usage: sh bin/klist.sh")
- + " [-e] [-V] [[-c] [-l] [-A] [-d] [-f] [-s] "
+ + " <-conf conf_dir> [-e] [-V] [[-c] [-l] [-A] [-d] [-f] [-s] "
+ "[-a [-n]]] [-k [-t] [-K]] [name]\n"
+ "\t-c specifies credentials cache\n"
+ "\t-k specifies keytab\n"
@@ -69,7 +69,7 @@ public class KlistTool {
+ "\t\t-f shows credentials flags\n"
+ "\t\t-s sets exit status based on valid tgt existence\n"
+ "\t\t-a displays the address list\n"
- + "\t\t\t-n do not reverse-resolve\n"
+ + "\t\t-n do not reverse-resolve\n"
+ "\toptions for keytabs:\n"
+ "\t\t-t shows keytab entry timestamps\n"
+ "\t\t-K shows keytab entry keys\n";
@@ -89,7 +89,7 @@ public class KlistTool {
String fileName;
if (!klOptions.contains(KlistOption.CREDENTIALS_CACHE)) {
- fileName = getCcacheName();
+ fileName = getCcacheName(klOptions);
} else {
fileName = klOptions.getStringOption(KlistOption.CREDENTIALS_CACHE);
}
@@ -136,11 +136,16 @@ public class KlistTool {
/**
* Get credential cache file name if not specified.
*/
- private static String getCcacheName() {
+ private static String getCcacheName(KOptions klOptions) {
String ccacheName;
String ccacheNameEnv = System.getenv("KRB5CCNAME");
String ccacheNameConf = null;
+
File confDir = new File("/etc");
+ if (klOptions.contains(KlistOption.CONF_DIR)) {
+ confDir = klOptions.getDirOption(KlistOption.CONF_DIR);
+ }
+
try {
KrbClient krbClient = new KrbClient(confDir);
ccacheNameConf = krbClient.getSetting().getKrbConfig().getString("default_ccache_name");