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/11/24 08:59:39 UTC

[10/27] directory-kerby git commit: DIRKRB-450 Allow to pass KdcOption related options from KinitTool down to KrbClient. Contributed by Steve.

DIRKRB-450 Allow to pass KdcOption related options from KinitTool down to KrbClient. Contributed by Steve.


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

Branch: refs/heads/pkinit-support
Commit: 02e97e8ef8a833a6ef0a4a968de4353ede30b913
Parents: d18ad29
Author: plusplusjiajia <ji...@intel.com>
Authored: Thu Nov 19 09:54:16 2015 +0800
Committer: plusplusjiajia <ji...@intel.com>
Committed: Thu Nov 19 09:54:16 2015 +0800

----------------------------------------------------------------------
 .../kerb/client/impl/AbstractInternalKrbClient.java  | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/02e97e8e/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 40d1827..2bcbcc9 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
@@ -35,6 +35,8 @@ import org.apache.kerby.kerberos.kerb.client.request.TgsRequestWithTgt;
 import org.apache.kerby.kerberos.kerb.client.request.TgsRequestWithToken;
 import org.apache.kerby.kerberos.kerb.spec.base.NameType;
 import org.apache.kerby.kerberos.kerb.spec.base.PrincipalName;
+import org.apache.kerby.kerberos.kerb.spec.kdc.KdcOption;
+import org.apache.kerby.kerberos.kerb.spec.kdc.KdcOptions;
 import org.apache.kerby.kerberos.kerb.spec.ticket.ServiceTicket;
 import org.apache.kerby.kerberos.kerb.spec.ticket.TgtTicket;
 
@@ -108,6 +110,19 @@ public abstract class AbstractInternalKrbClient implements InternalKrbClient {
             asRequest.setServerPrincipal(serverPrincipal);
         }
 
+        KdcOptions kdcOptions = new KdcOptions();
+        for (KOption koption: requestOptions.getOptions()) {
+            try {
+              KdcOption kdcOption = KdcOption.valueOf(koption.getOptionName());
+              kdcOptions.setFlag(kdcOption, requestOptions.getBooleanOption(koption, false));
+            } catch (IllegalArgumentException | NullPointerException e) {
+              // It's completely acceptable that a request option is NOT a KdcOption
+              // but PMD doesn't like empty finally or catch blocks - here's a message
+              // just for you!
+              e.getMessage();
+            }
+        }
+        asRequest.setKdcOptions(kdcOptions);
         asRequest.setKrbOptions(requestOptions);
 
         return doRequestTgtTicket(asRequest);