You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ha...@apache.org on 2015/03/24 07:19:13 UTC

[1/2] directory-kerby git commit: DIRKRB-187 Write tgt into credentials cache in kinit. Contributed by Jiajia

Repository: directory-kerby
Updated Branches:
  refs/heads/master 103931a32 -> 149b7a931


DIRKRB-187  Write tgt into credentials cache in kinit. Contributed by Jiajia


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

Branch: refs/heads/master
Commit: 7948f5fb83e36418226b74b714dae9c1a37b77de
Parents: 653130a
Author: hazel <li...@foxmail.com>
Authored: Tue Mar 24 14:15:45 2015 +0800
Committer: hazel <li...@foxmail.com>
Committed: Tue Mar 24 14:17:59 2015 +0800

----------------------------------------------------------------------
 kerby-tool/client-tool/pom.xml                  |  5 +++
 .../apache/kerby/kerberos/tool/kinit/Kinit.java | 34 +++++++++++++-------
 2 files changed, 28 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/7948f5fb/kerby-tool/client-tool/pom.xml
----------------------------------------------------------------------
diff --git a/kerby-tool/client-tool/pom.xml b/kerby-tool/client-tool/pom.xml
index 5f17dff..375ddb1 100644
--- a/kerby-tool/client-tool/pom.xml
+++ b/kerby-tool/client-tool/pom.xml
@@ -55,6 +55,11 @@
       <artifactId>pki-provider</artifactId>
       <version>${project.version}</version>
     </dependency>
+    <dependency>
+      <groupId>org.apache.kerby</groupId>
+      <artifactId>kerb-util</artifactId>
+      <version>${project.version}</version>
+    </dependency>
 
   </dependencies>
   

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/7948f5fb/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/Kinit.java
----------------------------------------------------------------------
diff --git a/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/Kinit.java b/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/Kinit.java
index f3da909..991a6ef 100644
--- a/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/Kinit.java
+++ b/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/Kinit.java
@@ -20,13 +20,18 @@
 package org.apache.kerby.kerberos.tool.kinit;
 
 import org.apache.kerby.kerberos.kerb.KrbException;
+import org.apache.kerby.kerberos.kerb.ccache.Credential;
+import org.apache.kerby.kerberos.kerb.ccache.CredentialCache;
 import org.apache.kerby.kerberos.kerb.client.KOptionType;
 import org.apache.kerby.kerberos.kerb.client.KOptions;
 import org.apache.kerby.kerberos.kerb.client.KrbClient;
+import org.apache.kerby.kerberos.kerb.client.KrbOption;
 import org.apache.kerby.kerberos.kerb.spec.ticket.TgtTicket;
 import org.apache.kerby.kerberos.tool.ToolUtil;
 
 import java.io.Console;
+import java.io.File;
+import java.io.IOException;
 import java.util.Arrays;
 import java.util.Scanner;
 
@@ -96,21 +101,29 @@ public class Kinit {
         return password;
     }
 
-    private static int requestTicket(String principal, KOptions kinitOptions) {
+    private static void requestTicket(String principal, KOptions kinitOptions) throws KrbException, IOException {
         KrbClient krbClient = new KrbClient();
         krbClient.init();
 
         String password = getPassword(principal);
 
-        try {
-            TgtTicket tgt = krbClient.requestTgtTicket(principal, password,
-                    ToolUtil.convertOptions(kinitOptions));
-            // TODO: write tgt into credentials cache.
-            return 0;
-        } catch (KrbException e) {
-            System.err.println("Error occurred:" + e.getMessage());
-            return -1;
+        TgtTicket tgt = krbClient.requestTgtTicket(principal, password,
+                ToolUtil.convertOptions(kinitOptions));
+
+        // write tgt into credentials cache.
+        Credential credential = new Credential(tgt);
+        CredentialCache cCache = new CredentialCache();
+        cCache.addCredential(credential);
+        cCache.setPrimaryPrincipal(tgt.getClientPrincipal());
+
+        String fileName;
+        if (kinitOptions.contains(KrbOption.KRB5_CACHE)) {
+            fileName = kinitOptions.getStringOption(KrbOption.KRB5_CACHE);
+        } else {
+            fileName = "krb5_" + principal + ".cc";
         }
+        File cCacheFile = new File("/tmp/", fileName);
+        cCache.store(cCacheFile);
     }
 
     public static void main(String[] args) throws Exception {
@@ -157,8 +170,7 @@ public class Kinit {
             printUsage("No principal is specified");
         }
 
-        int errNo = Kinit.requestTicket(principal, ktOptions);
-        System.exit(errNo);
+        Kinit.requestTicket(principal, ktOptions);
     }
 
 }


[2/2] directory-kerby git commit: Merge remote-tracking branch 'origin/master'

Posted by ha...@apache.org.
Merge remote-tracking branch 'origin/master'


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

Branch: refs/heads/master
Commit: 149b7a931ebeb985800e4d3b25cf66606a1379a8
Parents: 7948f5f 103931a
Author: hazel <li...@foxmail.com>
Authored: Tue Mar 24 14:19:09 2015 +0800
Committer: hazel <li...@foxmail.com>
Committed: Tue Mar 24 14:19:09 2015 +0800

----------------------------------------------------------------------

----------------------------------------------------------------------