You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by sm...@apache.org on 2006/10/31 06:54:42 UTC

svn commit: r469380 - in /incubator/harmony/enhanced/classlib/trunk/modules/auth/src: main/java/common/javax/security/auth/kerberos/KerberosTicket.java test/java/common/org/apache/harmony/auth/tests/javax/security/auth/kerberos/KerberosTicketTest.java

Author: smishura
Date: Mon Oct 30 21:54:41 2006
New Revision: 469380

URL: http://svn.apache.org/viewvc?view=rev&rev=469380
Log:
Fixes for KerberosTicket + regression tests

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/auth/src/main/java/common/javax/security/auth/kerberos/KerberosTicket.java
    incubator/harmony/enhanced/classlib/trunk/modules/auth/src/test/java/common/org/apache/harmony/auth/tests/javax/security/auth/kerberos/KerberosTicketTest.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/auth/src/main/java/common/javax/security/auth/kerberos/KerberosTicket.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/auth/src/main/java/common/javax/security/auth/kerberos/KerberosTicket.java?view=diff&rev=469380&r1=469379&r2=469380
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/auth/src/main/java/common/javax/security/auth/kerberos/KerberosTicket.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/auth/src/main/java/common/javax/security/auth/kerberos/KerberosTicket.java Mon Oct 30 21:54:41 2006
@@ -174,12 +174,10 @@
     }
 
     public final KerberosPrincipal getClient() {
-        checkState();
         return client;
     }
 
     public final KerberosPrincipal getServer() {
-        checkState();
         return server;
     }
 
@@ -237,7 +235,9 @@
     }
 
     public final boolean[] getFlags() {
-        checkState();
+        if (destroyed) {
+            return null;
+        }
         boolean[] tmp = new boolean[flags.length];
         System.arraycopy(flags, 0, tmp, 0, tmp.length);
         return tmp;
@@ -245,7 +245,9 @@
     }
 
     public final Date getAuthTime() {
-        checkState();
+        if (destroyed) {
+            return null;
+        }
         return new Date(authTime.getTime());
     }
 
@@ -255,17 +257,20 @@
     }
 
     public final Date getEndTime() {
-        checkState();
+        if (destroyed) {
+            return null;
+        }
         return new Date(endTime.getTime());
     }
 
     public final Date getRenewTill() {
-        checkState();
+        if (destroyed) {
+            return null;
+        }
         return renewTill;
     }
 
     public final InetAddress[] getClientAddresses() {
-        checkState();
         if (this.clientAddresses != null) {
             InetAddress[] tmp = new InetAddress[this.clientAddresses.length];
             System.arraycopy(clientAddresses, 0, tmp, 0, tmp.length);
@@ -275,22 +280,20 @@
     }
 
     public void destroy() throws DestroyFailedException {
-        if (!destroyed) {
-            Arrays.fill(this.asn1Encoding, (byte) 0);
-            this.client = null;
-            this.server = null;
-            this.sessionKey.destroy();
-            this.flags = null;
-            this.authTime = null;
-            this.startTime = null;
-            this.endTime = null;
-            this.renewTill = null;
-            this.clientAddresses = null;
-            destroyed = true;
-        } else {
-            throw new DestroyFailedException(Messages.getString("auth.43")); //$NON-NLS-1$
+        if (destroyed) {
+            return;
         }
-
+        Arrays.fill(this.asn1Encoding, (byte) 0);
+        this.client = null;
+        this.server = null;
+        this.sessionKey.destroy();
+        this.flags = null;
+        this.authTime = null;
+        this.startTime = null;
+        this.endTime = null;
+        this.renewTill = null;
+        this.clientAddresses = null;
+        destroyed = true;
     }
 
     public boolean isDestroyed() {

Modified: incubator/harmony/enhanced/classlib/trunk/modules/auth/src/test/java/common/org/apache/harmony/auth/tests/javax/security/auth/kerberos/KerberosTicketTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/auth/src/test/java/common/org/apache/harmony/auth/tests/javax/security/auth/kerberos/KerberosTicketTest.java?view=diff&rev=469380&r1=469379&r2=469380
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/auth/src/test/java/common/org/apache/harmony/auth/tests/javax/security/auth/kerberos/KerberosTicketTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/auth/src/test/java/common/org/apache/harmony/auth/tests/javax/security/auth/kerberos/KerberosTicketTest.java Mon Oct 30 21:54:41 2006
@@ -286,4 +286,56 @@
         assertEquals(authTime, krbTicket.getStartTime());
         assertNotSame(authTime, krbTicket.getStartTime());
     }
+    
+    /**
+     * @tests javax.security.auth.kerberos.KerberosTicket#destroy()
+     * @tests javax.security.auth.kerberos.KerberosTicket#isDestroyed()
+     */
+    public void test_Destroyable() throws Exception {
+
+        KerberosTicket kt = new KerberosTicket(ticket, pClient, pServer,
+                sessionKey, KEY_TYPE, flags, authTime, startTime, endTime,
+                renewTill, addesses);
+
+        assertFalse(kt.isDestroyed());
+
+        kt.destroy();
+        assertTrue(kt.isDestroyed());
+
+        // no exceptions for second destroy
+        kt.destroy();
+
+        assertNull(kt.getAuthTime());
+        assertNull(kt.getClient());
+        assertNull(kt.getClientAddresses());
+
+        try {
+            kt.getEncoded();
+            fail("No expected IllegalStateException");
+        } catch (IllegalStateException e) {
+        }
+
+        assertNull(kt.getEndTime());
+        assertNull(kt.getFlags());
+        assertNull(kt.getRenewTill());
+        assertNull(kt.getServer());
+
+        try {
+            kt.getSessionKey();
+            fail("No expected IllegalStateException");
+        } catch (IllegalStateException e) {
+        }
+
+        try {
+            kt.getSessionKeyType();
+            fail("No expected IllegalStateException");
+        } catch (IllegalStateException e) {
+        }
+
+        try {
+            kt.toString();
+            fail("No expected IllegalStateException");
+        } catch (IllegalStateException e) {
+        }
+    }
 }