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 2017/07/21 11:27:21 UTC

[34/50] [abbrv] directory-kerby git commit: Adding @Ignore'd GSS interop testcase

Adding @Ignore'd GSS interop testcase


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

Branch: refs/heads/gssapi
Commit: 44db32137ed48799d150c0ce9703bde77ba8f3a0
Parents: a5ddca4
Author: Colm O hEigeartaigh <co...@apache.org>
Authored: Tue Jun 28 14:57:23 2016 +0100
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Fri Jul 21 12:25:51 2017 +0100

----------------------------------------------------------------------
 .../kerberos/kerb/server/GssInteropTest.java    | 52 +++++++++++++++++---
 1 file changed, 46 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/44db3213/kerby-kerb/kerb-kdc-test/src/test/java/org/apache/kerby/kerberos/kerb/server/GssInteropTest.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-kdc-test/src/test/java/org/apache/kerby/kerberos/kerb/server/GssInteropTest.java b/kerby-kerb/kerb-kdc-test/src/test/java/org/apache/kerby/kerberos/kerb/server/GssInteropTest.java
index 832d59d..7e0d269 100644
--- a/kerby-kerb/kerb-kdc-test/src/test/java/org/apache/kerby/kerberos/kerb/server/GssInteropTest.java
+++ b/kerby-kerb/kerb-kdc-test/src/test/java/org/apache/kerby/kerberos/kerb/server/GssInteropTest.java
@@ -19,6 +19,20 @@
  */
 package org.apache.kerby.kerberos.kerb.server;
 
+import java.io.ByteArrayOutputStream;
+import java.security.Principal;
+import java.security.PrivilegedExceptionAction;
+import java.util.Set;
+
+import javax.security.auth.Subject;
+import javax.security.auth.kerberos.KerberosTicket;
+
+import org.apache.kerby.kerberos.kerb.ccache.CredCacheOutputStream;
+import org.apache.kerby.kerberos.kerb.ccache.Credential;
+import org.apache.kerby.kerberos.kerb.ccache.CredentialCache;
+import org.apache.kerby.kerberos.kerb.client.KrbClient;
+import org.apache.kerby.kerberos.kerb.type.ticket.SgtTicket;
+import org.apache.kerby.kerberos.kerb.type.ticket.TgtTicket;
 import org.ietf.jgss.GSSContext;
 import org.ietf.jgss.GSSCredential;
 import org.ietf.jgss.GSSException;
@@ -28,12 +42,6 @@ import org.ietf.jgss.Oid;
 import org.junit.Assert;
 import org.junit.Test;
 
-import javax.security.auth.Subject;
-import javax.security.auth.kerberos.KerberosTicket;
-import java.security.Principal;
-import java.security.PrivilegedExceptionAction;
-import java.util.Set;
-
 /**
  * This is an interop test using the Java GSS APIs against the Kerby KDC
  */
@@ -62,6 +70,38 @@ public class GssInteropTest extends LoginTestBase {
 
         validateServiceTicket(kerberosToken);
     }
+    
+    @Test
+    @org.junit.Ignore
+    public void testKerbyClientAndGssService() throws Exception {
+        KrbClient client = getKrbClient();
+        client.init();
+
+        try {
+            // Get a service ticket using Kerby APIs
+            TgtTicket tgt = client.requestTgt(getClientPrincipal(), getClientPassword());
+            Assert.assertTrue(tgt != null);
+
+            SgtTicket tkt = client.requestSgt(tgt, getServerPrincipal());
+            Assert.assertTrue(tkt != null);
+            
+            Credential credential = new Credential(tkt, tgt.getClientPrincipal());
+            CredentialCache cCache = new CredentialCache();
+            cCache.addCredential(credential);
+            cCache.setPrimaryPrincipal(tgt.getClientPrincipal());
+            
+            ByteArrayOutputStream bout = new ByteArrayOutputStream();
+            CredCacheOutputStream os = new CredCacheOutputStream(bout);
+            cCache.store(bout);
+            os.close();
+            
+            // Now validate the ticket using GSS
+            validateServiceTicket(bout.toByteArray());
+        } catch (Exception e) {
+            e.printStackTrace();
+            Assert.fail();
+        }
+    }
 
     private void validateServiceTicket(byte[] ticket) throws Exception {
         Subject serviceSubject = loginServiceUsingKeytab();