Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/javax/security/auth/kerberos/KerberosHashEqualsTest.java
38853 views
/*1* Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/*24* @test25* @bug 464182126* @summary hashCode() and equals() for KerberosKey and KerberosTicket27* @ignore Must set up KDC and setup Kerberos configuration file28*/2930import java.net.InetAddress;31import java.util.Date;32import javax.security.auth.kerberos.KerberosKey;33import javax.security.auth.kerberos.KerberosPrincipal;34import javax.security.auth.kerberos.KerberosTicket;3536public class KerberosHashEqualsTest {37public static void main(String[] args) throws Exception {38new KerberosHashEqualsTest().check();39}4041void checkSame(Object o1, Object o2) {42if(!o1.equals(o2)) {43throw new RuntimeException("equals() fails");44}45if(o1.hashCode() != o2.hashCode()) {46throw new RuntimeException("hashCode() not same");47}48}4950void checkNotSame(Object o1, Object o2) {51if(o1.equals(o2)) {52throw new RuntimeException("equals() succeeds");53}54}5556void check() throws Exception {57KerberosKey k1, k2;58k1 = new KerberosKey(new KerberosPrincipal("A"), "pass".getBytes(), 1, 1);59k2 = new KerberosKey(new KerberosPrincipal("A"), "pass".getBytes(), 1, 1);60checkSame(k1, k1); // me to me61checkSame(k1, k2); // same6263k2.destroy();64checkNotSame(k1, k2);6566// destroyed keys doesn't equal to each other67checkNotSame(k2, k1);68checkSame(k2, k2);6970// a little different71k2 = new KerberosKey(new KerberosPrincipal("B"), "pass".getBytes(), 1, 1);72checkNotSame(k1, k2);73k2 = new KerberosKey(new KerberosPrincipal("A"), "ssap".getBytes(), 1, 1);74checkNotSame(k1, k2);75k2 = new KerberosKey(new KerberosPrincipal("A"), "pass".getBytes(), 2, 1);76checkNotSame(k1, k2);77k2 = new KerberosKey(new KerberosPrincipal("A"), "pass".getBytes(), 1, 2);78checkNotSame(k1, k2);7980k1 = new KerberosKey(null, "pass".getBytes(), 1, 2);81checkNotSame(k1, k2); // null to non-null82k2 = new KerberosKey(null, "pass".getBytes(), 1, 2);83checkSame(k1, k2); // null to null8485checkNotSame(k1, "Another Object");8687KerberosTicket t1, t2;88t1 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);89t2 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);90checkSame(t1, t1);91checkSame(t1, t2);92t2 = new KerberosTicket("asn11".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);93checkNotSame(t1, t2);94t2 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client1"), new KerberosPrincipal("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);95checkNotSame(t1, t2);96t2 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server1"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);97checkNotSame(t1, t2);98t2 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server"), "pass1".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);99checkNotSame(t1, t2);100t2 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server"), "pass".getBytes(), 2, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);101checkNotSame(t1, t2);102t2 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server"), "pass".getBytes(), 1, new boolean[] {false, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);103checkNotSame(t1, t2);104t2 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(1), new Date(0), new Date(0), new Date(0), null);105checkNotSame(t1, t2);106t2 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(1), new Date(0), new Date(0), null);107checkNotSame(t1, t2);108t2 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(1), new Date(0), null);109checkNotSame(t1, t2);110t2 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), new InetAddress[2]);111checkNotSame(t1, t2);112113t2 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(1), null);114t1 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(2), null);115checkSame(t1, t2); // renewtill is useless116117t2.destroy();118checkNotSame(t1, t2);119120// destroyed tickets doesn't equal to each other121checkNotSame(t2, t1);122checkSame(t2, t2);123124t2 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server"), "pass".getBytes(), 1, new boolean[] {true, true, true, true, true, true, true, true, true, true}, new Date(0), new Date(0), new Date(0), new Date(1), null);125t1 = new KerberosTicket("asn1".getBytes(), new KerberosPrincipal("client"), new KerberosPrincipal("server"), "pass".getBytes(), 1, new boolean[] {true, true, true, true, true, true, true, true, true, true}, new Date(0), new Date(0), new Date(0), new Date(2), null);126checkNotSame(t1, t2); // renewtill is useful127128checkNotSame(t1, "Another Object");129System.out.println("Good!");130}131}132133134