You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by dr...@apache.org on 2015/03/16 04:22:18 UTC
[2/2] directory-kerberos git commit: Introduced KOption and
KinitOption
Introduced KOption and KinitOption
Project: http://git-wip-us.apache.org/repos/asf/directory-kerberos/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerberos/commit/515d3b66
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerberos/tree/515d3b66
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerberos/diff/515d3b66
Branch: refs/heads/master
Commit: 515d3b66f8a533123207b3c8fdd69eaa1b2d025d
Parents: d8c1f20
Author: Drankye <dr...@gmail.com>
Authored: Mon Mar 16 11:21:50 2015 +0800
Committer: Drankye <dr...@gmail.com>
Committed: Mon Mar 16 11:21:50 2015 +0800
----------------------------------------------------------------------
.../org/apache/kerby/kerberos/tool/Kinit.java | 215 ------------------
.../apache/kerby/kerberos/tool/kinit/Kinit.java | 216 +++++++++++++++++++
.../kerby/kerberos/tool/kinit/KinitOption.java | 106 +++++++++
.../kerby/kerberos/kerb/client/KOption.java | 35 +++
.../kerby/kerberos/kerb/client/KrbOption.java | 89 +++++---
.../kerby/kerberos/kerb/client/KrbOptions.java | 19 +-
6 files changed, 424 insertions(+), 256 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/515d3b66/kdc-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/Kinit.java
----------------------------------------------------------------------
diff --git a/kdc-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/Kinit.java b/kdc-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/Kinit.java
deleted file mode 100644
index 134eb6b..0000000
--- a/kdc-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/Kinit.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.kerby.kerberos.tool;
-
-import org.apache.kerby.config.Conf;
-import org.apache.kerby.kerberos.kerb.KrbException;
-import org.apache.kerby.kerberos.kerb.client.KrbClient;
-import org.apache.kerby.kerberos.kerb.client.KrbConfig;
-
-import java.io.Console;
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Scanner;
-
-/**
- * kinit like tool
- */
-public class Kinit {
-
- private static final String COMMON_USAGE = "Usage: " +
- Kinit.class.getSimpleName() + " [-l lifetime] [-f | -F] principal\n" +
- "\n" +
- " options:\t-l lifetime\n" +
- "\t-f forwardable\n" +
- "\t-F not forwardable";
-
- private void printUsage(String cmd) {
- if ("-l".equals(cmd)) {
- System.err.println("Usage: " + Kinit.class.getSimpleName() + " -l lifetime principal");
- } else if ("-f".equals(cmd)) {
- System.err.println("Usage: " + Kinit.class.getSimpleName() + " -f principal");
- } else if ("-F".equals(cmd)) {
- System.err.println("Usage: " + Kinit.class.getSimpleName() + " -F principal");
- } else {
- System.err.println(COMMON_USAGE);
- }
- }
-
- /**
- * args[0] is the configuration directory written in script.
- * args[length - 1] is principal
- */
- private int execute(String[] args) {
- if (args.length < 2 || args.length > 4) {
- printUsage("");
- return -1;
- }
-
- //no options
- if (args.length == 2) {
- return requestTicket(args, 1);
- }
-
- int exitCode = -1;
- int i = 1;
- String cmd = args[i];
-
- //
- // verify that we have enough option parameters
- //
- if ("-l".equals(cmd)) {
- if (args.length != 4) {
- printUsage(cmd);
- return exitCode;
- }
- } else if ("-f".equals(cmd)) {
- if (args.length != 3) {
- printUsage(cmd);
- return exitCode;
- }
- } else if ("-F".equals(cmd)) {
- if (args.length != 3) {
- printUsage(cmd);
- return exitCode;
- }
- }
-
- //
- //execute the command
- //
- if ("-l".equals(cmd)) {
- exitCode = ticketWithLifetime(args, i);
- } else if ("-f".equals(cmd)) {
- exitCode = ticketForwardable(args, i);
- } else if ("-F".equals(cmd)) {
- exitCode = ticketNonForwardable(args, i);
- }
-
- return exitCode;
- }
-
- /**
- * Init the KrbClient
- */
- private KrbClient createClient(String confDirString) {
- KrbConfig krbConfig = new KrbConfig();
- Conf conf = krbConfig.getConf();
-
- try {
- File confDir = new File(confDirString);
- File[] files = confDir.listFiles();
- if (files == null) {
- throw new IOException("There are no file in configuration directory: " + confDirString);
- }
-
- for (File file : files) {
- conf.addIniConfig(file);
- }
- } catch (IOException e) {
- System.err.println("Something wrong with krb configuration.");
- e.printStackTrace();
- }
-
- KrbClient krbClient = new KrbClient(krbConfig);
- krbClient.init();
- return krbClient;
- }
-
- /**
- * Get password for the input principal from console
- */
- private String getPassword(String principal) {
- Console console = System.console();
- if (console == null) {
- System.out.println("Couldn't get Console instance, maybe you're running this from within an IDE. Use scanner to read password.");
- System.out.println("Password for " + principal + ":");
- Scanner scanner = new Scanner(System.in);
- return scanner.nextLine().trim();
- }
- console.printf("Password for " + principal + ":");
- char[] passwordChars = console.readPassword();
- String password = new String(passwordChars).trim();
- Arrays.fill(passwordChars, ' ');
- return password;
- }
-
- private int requestTicket(String[] args, int i) {
- String principal = args[i];
- KrbClient client = createClient(args[0]);
- String password = getPassword(principal);
-
- try {
- client.requestTgtTicket(principal, password, null);
- return 0;
- } catch (KrbException e) {
- System.err.println("Something error.");
- return -1;
- }
- }
-
- private int ticketWithLifetime(String[] args, int i) {
- String lifetime = args[i];
- String principal = args[i];
- KrbClient client = createClient(args[0]);
- String password = getPassword(principal);
- try {
- //TODO
- return 0;
- } catch (Exception e) {
- System.err.println("Something error.");
- return -1;
- }
- }
-
- private int ticketForwardable(String[] args, int i) {
- String principal = args[i];
- KrbClient client = createClient(args[0]);
- String password = getPassword(principal);
- try {
- //TODO
- return 0;
- } catch (Exception e) {
- System.err.println("Something error.");
- return -1;
- }
- }
-
- private int ticketNonForwardable(String[] args, int i) {
- String principal = args[i];
- KrbClient client = createClient(args[0]);
- String password = getPassword(principal);
- try {
- //TODO
- return 0;
- } catch (Exception e) {
- System.err.println("Something error.");
- return -1;
- }
- }
-
- public static void main(String[] args) throws Exception {
- Kinit kinit = new Kinit();
- int exitCode = kinit.execute(args);
- System.exit(exitCode);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/515d3b66/kdc-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/Kinit.java
----------------------------------------------------------------------
diff --git a/kdc-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/Kinit.java b/kdc-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/Kinit.java
new file mode 100644
index 0000000..eb76b3a
--- /dev/null
+++ b/kdc-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/Kinit.java
@@ -0,0 +1,216 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.kerby.kerberos.tool.kinit;
+
+import org.apache.kerby.config.Conf;
+import org.apache.kerby.kerberos.kerb.KrbException;
+import org.apache.kerby.kerberos.kerb.client.KrbClient;
+import org.apache.kerby.kerberos.kerb.client.KrbConfig;
+
+import java.io.Console;
+import java.io.File;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Scanner;
+
+/**
+ * kinit like tool
+ */
+public class Kinit {
+
+ private static final String TOOL_NAME = Kinit.class.getSimpleName();
+ private static final String COMMON_USAGE = "Usage: " + TOOL_NAME +
+ " [-l lifetime]" +
+ " [-f | -F] principal\n" + "\n" +
+ " options:\t-l lifetime\n" +
+ "\t-f forwardable\n" +
+ "\t-F not forwardable";
+
+ private void printUsage(String cmd) {
+ if ("-l".equals(cmd)) {
+ System.err.println("Usage: " + TOOL_NAME + " -l lifetime principal");
+ } else if ("-f".equals(cmd)) {
+ System.err.println("Usage: " + TOOL_NAME + " -f principal");
+ } else if ("-F".equals(cmd)) {
+ System.err.println("Usage: " + TOOL_NAME + " -F principal");
+ } else {
+ System.err.println(COMMON_USAGE);
+ }
+ }
+
+ /**
+ * args[0] is the configuration directory written in script.
+ * args[length - 1] is principal
+ */
+ private int execute(String[] args) {
+ if (args.length < 2 || args.length > 4) {
+ printUsage("");
+ return -1;
+ }
+
+ //no options
+ if (args.length == 2) {
+ return requestTicket(args, 1);
+ }
+
+ int exitCode = -1;
+ int i = 1;
+ String cmd = args[i];
+
+ //
+ // verify that we have enough option parameters
+ //
+ if ("-l".equals(cmd)) {
+ if (args.length != 4) {
+ printUsage(cmd);
+ return exitCode;
+ }
+ } else if ("-f".equals(cmd)) {
+ if (args.length != 3) {
+ printUsage(cmd);
+ return exitCode;
+ }
+ } else if ("-F".equals(cmd)) {
+ if (args.length != 3) {
+ printUsage(cmd);
+ return exitCode;
+ }
+ }
+
+ //
+ //execute the command
+ //
+ if ("-l".equals(cmd)) {
+ exitCode = ticketWithLifetime(args, i);
+ } else if ("-f".equals(cmd)) {
+ exitCode = ticketForwardable(args, i);
+ } else if ("-F".equals(cmd)) {
+ exitCode = ticketNonForwardable(args, i);
+ }
+
+ return exitCode;
+ }
+
+ /**
+ * Init the KrbClient
+ */
+ private KrbClient createClient(String confDirString) {
+ KrbConfig krbConfig = new KrbConfig();
+ Conf conf = krbConfig.getConf();
+
+ try {
+ File confDir = new File(confDirString);
+ File[] files = confDir.listFiles();
+ if (files == null) {
+ throw new IOException("There are no file in configuration directory: " + confDirString);
+ }
+
+ for (File file : files) {
+ conf.addIniConfig(file);
+ }
+ } catch (IOException e) {
+ System.err.println("Something wrong with krb configuration.");
+ e.printStackTrace();
+ }
+
+ KrbClient krbClient = new KrbClient(krbConfig);
+ krbClient.init();
+ return krbClient;
+ }
+
+ /**
+ * Get password for the input principal from console
+ */
+ private String getPassword(String principal) {
+ Console console = System.console();
+ if (console == null) {
+ System.out.println("Couldn't get Console instance, maybe you're running this from within an IDE. Use scanner to read password.");
+ System.out.println("Password for " + principal + ":");
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextLine().trim();
+ }
+ console.printf("Password for " + principal + ":");
+ char[] passwordChars = console.readPassword();
+ String password = new String(passwordChars).trim();
+ Arrays.fill(passwordChars, ' ');
+ return password;
+ }
+
+ private int requestTicket(String[] args, int i) {
+ String principal = args[i];
+ KrbClient client = createClient(args[0]);
+ String password = getPassword(principal);
+
+ try {
+ client.requestTgtTicket(principal, password, null);
+ return 0;
+ } catch (KrbException e) {
+ System.err.println("Something error.");
+ return -1;
+ }
+ }
+
+ private int ticketWithLifetime(String[] args, int i) {
+ String lifetime = args[i];
+ String principal = args[i];
+ KrbClient client = createClient(args[0]);
+ String password = getPassword(principal);
+ try {
+ //TODO
+ return 0;
+ } catch (Exception e) {
+ System.err.println("Something error.");
+ return -1;
+ }
+ }
+
+ private int ticketForwardable(String[] args, int i) {
+ String principal = args[i];
+ KrbClient client = createClient(args[0]);
+ String password = getPassword(principal);
+ try {
+ //TODO
+ return 0;
+ } catch (Exception e) {
+ System.err.println("Something error.");
+ return -1;
+ }
+ }
+
+ private int ticketNonForwardable(String[] args, int i) {
+ String principal = args[i];
+ KrbClient client = createClient(args[0]);
+ String password = getPassword(principal);
+ try {
+ //TODO
+ return 0;
+ } catch (Exception e) {
+ System.err.println("Something error.");
+ return -1;
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+ Kinit kinit = new Kinit();
+ int exitCode = kinit.execute(args);
+ System.exit(exitCode);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/515d3b66/kdc-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/KinitOption.java
----------------------------------------------------------------------
diff --git a/kdc-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/KinitOption.java b/kdc-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/KinitOption.java
new file mode 100644
index 0000000..c36dda7
--- /dev/null
+++ b/kdc-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/KinitOption.java
@@ -0,0 +1,106 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.kerby.kerberos.tool.kinit;
+
+import org.apache.kerby.kerberos.kerb.client.KOption;
+
+public enum KinitOption implements KOption {
+ NONE("NONE"),
+ LIFE_TIME("-l", "lifetime"),
+ START_TIME("-s", "start time"),
+ RENEWABLE_TIME("-r", "renewable lifetime"),
+ FORWARDABLE("-f", "forwardable"),
+ NOT_FORWARDABLE("-F", "not forwardable"),
+ PROXIABLE("-p", "proxiable"),
+ NOT_PROXIABLE("-P", "not proxiable"),
+ ANONYMOUS("-n", "anonymous"),
+ INCLUDE_ADDRESSES("-a", "include addresses"),
+ NOT_INCLUDE_ADDRESSES("-A", "do not include addresses"),
+ VALIDATE("-v", "validate"),
+ RENEW("-R", "renew"),
+ CANONICALIZE("-C", "canonicalize"),
+ AS_ENTERPRISE_PN("-E", "client is enterprise principal name"),
+ USE_KEYTAB("-k", "use keytab"),
+ USE_DFT_KEYTAB("-i", "use default client keytab (with -k)"),
+ USER_KEYTAB_FILE("-t", "filename of keytab to use"),
+ KRB5_CACHE("-c", "Kerberos 5 cache name"),
+ SERVICE("-S", "service"),
+ ARMOR_CACHE("-T", "armor credential cache"),
+ XATTR("-X", "<attribute>[=<value>]"),
+ ;
+
+ private String name;
+ private String description;
+ private Object value;
+
+ KinitOption(String description) {
+ this.description = description;
+ }
+
+ KinitOption(String name, String description) {
+ this.name = name;
+ this.description = description;
+ }
+
+ @Override
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ @Override
+ public String getName() {
+ if (name != null) {
+ return name;
+ }
+ return name();
+ }
+
+ @Override
+ public String getDescription() {
+ return this.description;
+ }
+
+ @Override
+ public void setValue(Object value) {
+ this.value = value;
+ }
+
+ @Override
+ public Object getValue() {
+ return value;
+ }
+
+ public static KinitOption fromName(String name) {
+ if (name != null) {
+ for (KinitOption ko : values()) {
+ if (ko.getName().equals(name)) {
+ return (KinitOption) ko;
+ }
+ }
+ }
+ return NONE;
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/515d3b66/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KOption.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KOption.java b/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KOption.java
new file mode 100644
index 0000000..cb30d34
--- /dev/null
+++ b/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KOption.java
@@ -0,0 +1,35 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.kerby.kerberos.kerb.client;
+
+public interface KOption {
+
+ public void setName(String name);
+
+ public String getName();
+
+ public void setDescription(String description);
+
+ public String getDescription();
+
+ public void setValue(Object value);
+
+ public Object getValue();
+}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/515d3b66/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbOption.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbOption.java b/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbOption.java
index 64d0d56..bc44937 100644
--- a/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbOption.java
+++ b/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbOption.java
@@ -19,41 +19,41 @@
*/
package org.apache.kerby.kerberos.kerb.client;
-public enum KrbOption {
- LIFE_TIME("-l lifetime"),
- START_TIME("-s start time"),
- RENEWABLE_TIME("-r renewable lifetime"),
- FORWARDABLE("-f forwardable"),
- NOT_FORWARDABLE("-F not forwardable"),
- PROXIABLE("-p proxiable"),
- NOT_PROXIABLE("-P not proxiable"),
- ANONYMOUS("-n anonymous"),
- INCLUDE_ADDRESSES("-a include addresses"),
- NOT_INCLUDE_ADDRESSES("-A do not include addresses"),
- VALIDATE("-v validate"),
- RENEW("-R renew"),
- CANONICALIZE("-C canonicalize"),
- AS_ENTERPRISE_PN("-E client is enterprise principal name"),
- USE_KEYTAB("-k use keytab"),
- USE_DFT_KEYTAB("-i use default client keytab (with -k)"),
- USER_KEYTAB_FILE("-t filename of keytab to use"),
- KRB5_CACHE("-c Kerberos 5 cache name"),
- SERVICE("-S service"),
- ARMOR_CACHE("-T armor credential cache"),
- XATTR("-X <attribute>[=<value>]"),
+public enum KrbOption implements KOption {
+ NONE("NONE"),
+ LIFE_TIME("lifetime"),
+ START_TIME("start-time"),
+ RENEWABLE_TIME("renewable-lifetime"),
+ FORWARDABLE("forwardable"),
+ NOT_FORWARDABLE("not-forwardable"),
+ PROXIABLE("proxiable"),
+ NOT_PROXIABLE("not-proxiable"),
+ ANONYMOUS("anonymous"),
+ INCLUDE_ADDRESSES("include-addresses"),
+ NOT_INCLUDE_ADDRESSES("do-not-include-addresses"),
+ VALIDATE("validate"),
+ RENEW("renew"),
+ CANONICALIZE("canonicalize"),
+ AS_ENTERPRISE_PN("as-enterprise-pn", "client is enterprise principal name"),
+ USE_KEYTAB("use-keytab", "use-keytab"),
+ USE_DFT_KEYTAB("user-default-keytab", "use default client keytab"),
+ USER_KEYTAB_FILE("user-keytab-file", "filename of keytab to use"),
+ KRB5_CACHE("krb5-cache", "K5 cache name"),
+ SERVICE("service"),
+ ARMOR_CACHE("armor-cache", "armor credential cache"),
- USER_PASSWD("user_passwd", "User plain password"),
+ USER_PASSWD("user-passwd", "User plain password"),
- PKINIT_X509_IDENTITY("x509_identities", "X509 user private key and cert"),
- PKINIT_X509_PRIVATE_KEY("x509_privatekey", "X509 user private key"),
- PKINIT_X509_CERTIFICATE("x509_cert", "X509 user certificate"),
- PKINIT_X509_ANCHORS("x509_anchors", "X509 anchors"),
- PKINIT_X509_ANONYMOUS("x509_anonymous", "X509 anonymous"),
- PKINIT_USING_RSA("using_rsa_or_dh", "Using RSA or DH"),
+ PKINIT_X509_IDENTITY("x509-identities", "X509 user private key and cert"),
+ PKINIT_X509_PRIVATE_KEY("x509-privatekey", "X509 user private key"),
+ PKINIT_X509_CERTIFICATE("x509-cert", "X509 user certificate"),
+ PKINIT_X509_ANCHORS("x509-anchors", "X509 anchors"),
+ PKINIT_X509_ANONYMOUS("x509-anonymous", "X509 anonymous"),
+ PKINIT_USING_RSA("using-rsa-or-dh", "Using RSA or DH"),
- TOKEN_USING_IDTOKEN("using_id_token", "Using identity token"),
- TOKEN_USER_ID_TOKEN("user_id_token", "User identity token"),
- TOKEN_USER_AC_TOKEN("user_ac_token", "User access token"),
+ TOKEN_USING_IDTOKEN("using-id-token", "Using identity token"),
+ TOKEN_USER_ID_TOKEN("user-id-token", "User identity token"),
+ TOKEN_USER_AC_TOKEN("user-ac-token", "User access token"),
;
@@ -70,6 +70,17 @@ public enum KrbOption {
this.description = description;
}
+ @Override
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ @Override
public String getName() {
if (name != null) {
return name;
@@ -77,15 +88,29 @@ public enum KrbOption {
return name();
}
+ @Override
public String getDescription() {
return this.description;
}
+ @Override
public void setValue(Object value) {
this.value = value;
}
+ @Override
public Object getValue() {
return value;
}
+
+ public static KrbOption fromName(String name) {
+ if (name != null) {
+ for (KrbOption ko : values()) {
+ if (ko.getName().equals(name)) {
+ return (KrbOption) ko;
+ }
+ }
+ }
+ return NONE;
+ }
}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/515d3b66/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbOptions.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbOptions.java b/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbOptions.java
index b3333ca..2ea4eb2 100644
--- a/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbOptions.java
+++ b/kerby-kerb/kerb-client/src/main/java/org/apache/kerby/kerberos/kerb/client/KrbOptions.java
@@ -24,26 +24,27 @@ import java.util.Map;
public class KrbOptions {
- private final Map<KrbOption, KrbOption> options = new HashMap<KrbOption, KrbOption>(4);
+ private final Map<KOption, KOption> options =
+ new HashMap<KOption, KOption>();
- public void add(KrbOption option) {
+ public void add(KOption option) {
if (option != null) {
options.put(option, option);
}
}
- public void add(KrbOption option, Object optionValue) {
+ public void add(KOption option, Object optionValue) {
if (option != null) {
option.setValue(optionValue);
add(option);
}
}
- public boolean contains(KrbOption option) {
+ public boolean contains(KOption option) {
return options.containsKey(option);
}
- public KrbOption getOption(KrbOption option) {
+ public KOption getOption(KOption option) {
if (! options.containsKey(option)) {
return null;
}
@@ -51,14 +52,14 @@ public class KrbOptions {
return options.get(option);
}
- public Object getOptionValue(KrbOption option) {
+ public Object getOptionValue(KOption option) {
if (! contains(option)) {
return null;
}
return options.get(option).getValue();
}
- public String getStringOption(KrbOption option) {
+ public String getStringOption(KOption option) {
Object value = getOptionValue(option);
if (value instanceof String) {
return (String) value;
@@ -66,7 +67,7 @@ public class KrbOptions {
return null;
}
- public boolean getBooleanOption(KrbOption option) {
+ public boolean getBooleanOption(KOption option) {
Object value = getOptionValue(option);
if (value instanceof String) {
String strVal = (String) value;
@@ -81,7 +82,7 @@ public class KrbOptions {
return false;
}
- public int getIntegerOption(KrbOption option) {
+ public int getIntegerOption(KOption option) {
Object value = getOptionValue(option);
if (value instanceof String) {
String strVal = (String) value;