test/javax/security/auth/kerberos/KerberosTixDateTest.java

Print this page




  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 /*
  25  * @test
  26  * @bug 6659990
  27  * @summary test the immutability of the Date fields in KerberosTicket class.
  28  * @ignore Must set up KDC and setup Kerberos configuration file
  29  */
  30 
  31 import java.net.InetAddress;
  32 import java.util.Date;
  33 import java.io.*;
  34 import javax.security.auth.kerberos.KerberosKey;
  35 import javax.security.auth.kerberos.KerberosPrincipal;
  36 import javax.security.auth.kerberos.KerberosTicket;
  37 import sun.misc.BASE64Decoder;
  38 
  39 public class KerberosTixDateTest {
  40 
  41     // Serialized KerberosTicket from JDK6 (encoded in BASE64)
  42     // Note: the KerberosTicket object is created using the same values as
  43     // the KerberosTicket 't' in main(). Deserialization should succeed
  44     // and the deserialized object should equal to 't'.
  45     static String serializedKerberosTix =
  46 "rO0ABXNyACtqYXZheC5zZWN1cml0eS5hdXRoLmtlcmJlcm9zLktlcmJlcm9zVGlja2V0ZqGBbXB3" +
  47 "w7sCAApbAAxhc24xRW5jb2Rpbmd0AAJbQkwACGF1dGhUaW1ldAAQTGphdmEvdXRpbC9EYXRlO0wA" +
  48 "BmNsaWVudHQAMExqYXZheC9zZWN1cml0eS9hdXRoL2tlcmJlcm9zL0tlcmJlcm9zUHJpbmNpcGFs" +
  49 "O1sAD2NsaWVudEFkZHJlc3Nlc3QAF1tMamF2YS9uZXQvSW5ldEFkZHJlc3M7TAAHZW5kVGltZXEA" +
  50 "fgACWwAFZmxhZ3N0AAJbWkwACXJlbmV3VGlsbHEAfgACTAAGc2VydmVycQB+AANMAApzZXNzaW9u" +
  51 "S2V5dAAmTGphdmF4L3NlY3VyaXR5L2F1dGgva2VyYmVyb3MvS2V5SW1wbDtMAAlzdGFydFRpbWVx" +
  52 "AH4AAnhwdXIAAltCrPMX+AYIVOACAAB4cAAAAARhc24xc3IADmphdmEudXRpbC5EYXRlaGqBAUtZ" +
  53 "dBkDAAB4cHcIAAAAAAC8YU54c3IALmphdmF4LnNlY3VyaXR5LmF1dGgua2VyYmVyb3MuS2VyYmVy" +
  54 "b3NQcmluY2lwYWyZp31dDx4zKQMAAHhwdXEAfgAIAAAAEzARoAMCAQGhCjAIGwZjbGllbnR1cQB+" +
  55 "AAgAAAAVGxNKTEFCUy5TRkJBWS5TVU4uQ09NeHBxAH4AC3VyAAJbWlePIDkUuF3iAgAAeHAAAAAg" +
  56 "AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxAH4AC3NxAH4ADHVxAH4ACAAAABMwEaAD" +
  57 "AgEBoQowCBsGc2VydmVydXEAfgAIAAAAFRsTSkxBQlMuU0ZCQVkuU1VOLkNPTXhzcgAkamF2YXgu" +


 110     }
 111 
 112     private static void checkEqualsAndHashCode(byte[] bytes, KerberosTicket t)
 113         throws IOException, ClassNotFoundException {
 114         ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
 115         KerberosTicket deserializedTicket = (KerberosTicket)
 116                 (new ObjectInputStream(bais).readObject());
 117         if (!deserializedTicket.equals(t)) {
 118             throw new RuntimeException("equals() check fails!");
 119         }
 120         if (deserializedTicket.hashCode() != t.hashCode()) {
 121             throw new RuntimeException("hashCode() check fails!");
 122         }
 123     }
 124 
 125     private static void testS11nCompatibility(KerberosTicket t)
 126         throws Exception {
 127 
 128         System.out.println("Testing against KerberosTicket from JDK6...");
 129         byte[] serializedBytes =
 130             new BASE64Decoder().decodeBuffer(serializedKerberosTix);
 131         checkEqualsAndHashCode(serializedBytes, t);
 132 
 133         System.out.println("Testing against KerberosTicket from current rel...");
 134         ByteArrayOutputStream baos = new ByteArrayOutputStream();
 135         new ObjectOutputStream(baos).writeObject(t);
 136         checkEqualsAndHashCode(baos.toByteArray(), t);
 137 
 138         System.out.println("S11nCompatibility Test Passed");
 139     }
 140 }


  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 /*
  25  * @test
  26  * @bug 6659990
  27  * @summary test the immutability of the Date fields in KerberosTicket class.
  28  * @ignore Must set up KDC and setup Kerberos configuration file
  29  */
  30 
  31 import java.net.InetAddress;
  32 import java.util.Date;
  33 import java.io.*;
  34 import javax.security.auth.kerberos.KerberosKey;
  35 import javax.security.auth.kerberos.KerberosPrincipal;
  36 import javax.security.auth.kerberos.KerberosTicket;
  37 import java.util.Base64;
  38 
  39 public class KerberosTixDateTest {
  40 
  41     // Serialized KerberosTicket from JDK6 (encoded in BASE64)
  42     // Note: the KerberosTicket object is created using the same values as
  43     // the KerberosTicket 't' in main(). Deserialization should succeed
  44     // and the deserialized object should equal to 't'.
  45     static String serializedKerberosTix =
  46 "rO0ABXNyACtqYXZheC5zZWN1cml0eS5hdXRoLmtlcmJlcm9zLktlcmJlcm9zVGlja2V0ZqGBbXB3" +
  47 "w7sCAApbAAxhc24xRW5jb2Rpbmd0AAJbQkwACGF1dGhUaW1ldAAQTGphdmEvdXRpbC9EYXRlO0wA" +
  48 "BmNsaWVudHQAMExqYXZheC9zZWN1cml0eS9hdXRoL2tlcmJlcm9zL0tlcmJlcm9zUHJpbmNpcGFs" +
  49 "O1sAD2NsaWVudEFkZHJlc3Nlc3QAF1tMamF2YS9uZXQvSW5ldEFkZHJlc3M7TAAHZW5kVGltZXEA" +
  50 "fgACWwAFZmxhZ3N0AAJbWkwACXJlbmV3VGlsbHEAfgACTAAGc2VydmVycQB+AANMAApzZXNzaW9u" +
  51 "S2V5dAAmTGphdmF4L3NlY3VyaXR5L2F1dGgva2VyYmVyb3MvS2V5SW1wbDtMAAlzdGFydFRpbWVx" +
  52 "AH4AAnhwdXIAAltCrPMX+AYIVOACAAB4cAAAAARhc24xc3IADmphdmEudXRpbC5EYXRlaGqBAUtZ" +
  53 "dBkDAAB4cHcIAAAAAAC8YU54c3IALmphdmF4LnNlY3VyaXR5LmF1dGgua2VyYmVyb3MuS2VyYmVy" +
  54 "b3NQcmluY2lwYWyZp31dDx4zKQMAAHhwdXEAfgAIAAAAEzARoAMCAQGhCjAIGwZjbGllbnR1cQB+" +
  55 "AAgAAAAVGxNKTEFCUy5TRkJBWS5TVU4uQ09NeHBxAH4AC3VyAAJbWlePIDkUuF3iAgAAeHAAAAAg" +
  56 "AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxAH4AC3NxAH4ADHVxAH4ACAAAABMwEaAD" +
  57 "AgEBoQowCBsGc2VydmVydXEAfgAIAAAAFRsTSkxBQlMuU0ZCQVkuU1VOLkNPTXhzcgAkamF2YXgu" +


 110     }
 111 
 112     private static void checkEqualsAndHashCode(byte[] bytes, KerberosTicket t)
 113         throws IOException, ClassNotFoundException {
 114         ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
 115         KerberosTicket deserializedTicket = (KerberosTicket)
 116                 (new ObjectInputStream(bais).readObject());
 117         if (!deserializedTicket.equals(t)) {
 118             throw new RuntimeException("equals() check fails!");
 119         }
 120         if (deserializedTicket.hashCode() != t.hashCode()) {
 121             throw new RuntimeException("hashCode() check fails!");
 122         }
 123     }
 124 
 125     private static void testS11nCompatibility(KerberosTicket t)
 126         throws Exception {
 127 
 128         System.out.println("Testing against KerberosTicket from JDK6...");
 129         byte[] serializedBytes =
 130             Base64.getMimeDecoder().decode(serializedKerberosTix);
 131         checkEqualsAndHashCode(serializedBytes, t);
 132 
 133         System.out.println("Testing against KerberosTicket from current rel...");
 134         ByteArrayOutputStream baos = new ByteArrayOutputStream();
 135         new ObjectOutputStream(baos).writeObject(t);
 136         checkEqualsAndHashCode(baos.toByteArray(), t);
 137 
 138         System.out.println("S11nCompatibility Test Passed");
 139     }
 140 }