Test.java revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* ident "%Z%%M% %I% %E% SMI"
*
* Copyright (c) 1999-2000 by Sun Microsystems, Inc.
* All rights reserved.
*/
import java.awt.*;
import Principal;
import Policy;
import Defaults;
public class Test {
/**
* main method for easier debugging
*/
public static void main(String[] args) {
System.out.println("\nThese are unit tests for the JNI code.");
System.out.println("They assume the existence of a jnitest/admin");
System.out.println("user principal, with the password 'test123',");
System.out.println("and the existance of a 'default' policy.\n");
Kadmin k = new Kadmin();
String [] p;
Defaults d = new Defaults("$HOME/.gkadmin", Color.white);
System.out.println("==> Set up a session for jnitest/admin.\n");
boolean b = false;
System.out.println("*** First, one with a bogus port number.");
try {
b = k.sessionInit("jnitest/admin", "test123",
"SUNSOFT.ENG.SUN.COM", "ulong.eng.sun.com", 333);
b = false;
k.sessionExit();
System.out.println("Unexpected success!\n");
} catch (Exception e) {
b = false;
System.out.println("Expected failure "+e.getMessage()+"\n");
}
System.out.println("*** Next, one with the correct port number.");
try {
b = k.sessionInit("jnitest/admin", "test123",
"SUNSOFT.ENG.SUN.COM", "ulong.eng.sun.com", 749);
b = false;
k.sessionExit();
System.out.println("sessionInit was successful.\n");
} catch (Exception e) {
b = false;
System.out.println("Unexpected exception!"+e.getMessage()+"\n");
}
System.out.println("*** Finally, try one with a zero port number.");
try {
b = k.sessionInit("jnitest/admin", "test123",
"SUNSOFT.ENG.SUN.COM", "ulong.eng.sun.com", 0);
} catch (Exception e) {
b = false;
System.out.println("Unexpected exception!"+e.getMessage()+"\n");
}
if (!b) {
System.out.println("sessionInit failed\n");
return;
}
System.out.println("sessionInit was successful!\n");
System.out.println("==> Get the lists\n");
System.out.println("*** Principal list");
try {
p = k.getPrincipalList();
System.out.println("Called getPrincipalList()");
} catch (Exception e) {
p = null;
System.out.println("getPrincipalList exception"+e.getMessage());
}
for (int i = 0; p != null && i < p.length; i++)
System.out.println(p[i]);
System.out.println(new Integer(p.length).toString()+" entries.");
System.out.println("Principal list done\n");
System.out.println("*** Policy list");
try {
p = k.getPolicyList();
System.out.println("Called getPolicyList()");
} catch (Exception e) {
p = null;
System.out.println("getPolicyList exception "+e.getMessage());
}
for (int i = 0; p != null && i < p.length; i++)
System.out.println(p[i]);
System.out.println(new Integer(p.length).toString()+" entries.");
System.out.println("Policy list done\n");
System.out.println("==> Get privileges\n");
System.out.println("Calling getPrivs()");
int privs = 0;
try {
privs = k.getPrivs();
System.out.println("Privs are "
+(new Integer(privs)).toHexString(privs)+"\n");
} catch (Exception e) {
System.out.println("getPrivs exception "+e.getMessage()+"\n");
}
System.out.println("==> Database tests\n");
System.out.println("*** load a principal");
System.out.println("Calling Principal(k)");
Principal pr = new Principal(k, d);
System.out.println("Calling loadPrincipal(jnitest/admin)");
try {
b = k.loadPrincipal("jnitest/admin", pr);
} catch (Exception e) {
b = false;
System.out.println("loadPrincipal exception "+e.getMessage());
}
if (!b)
System.out.println("loadPrincipal failed\n");
else {
System.out.println("loadPrincipal succeeded, details:");
System.out.println(pr.toString());
}
System.out.println("*** load a policy");
Policy po = new Policy(k);
try {
b = k.loadPolicy("default", po);
} catch (Exception e) {
b = false;
System.out.println("loadPolicy exception "+e.getMessage());
}
if (!b)
System.out.println("loadPolicy failed\n");
else {
System.out.println("loadPolicy succeeded");
System.out.println("RefCount for "+po.PolicyName+" is "
+po.RefCount.toString());
System.out.println("PwMinLife for "+po.PolicyName+" is "
+po.PwMinLife.toString()+"\n");
}
System.out.println("*** load and store a policy");
try {
b = k.loadPolicy("default", po);
} catch (Exception e) {
b = false;
System.out.println("loadPolicy exception "+e.getMessage());
}
if (b) {
po.setPolMinlife("555");
try {
b = k.savePolicy(po);
} catch (Exception e) {
b = false;
System.out.println("savePolicy exception "+e.getMessage());
}
if (!b)
System.out.println("savePolicy failed\n");
else
System.out.println("savePolicy succeeded\n");
}
System.out.println("*** create a policy");
po = new Policy("aliens");
try {
b = k.createPolicy(po);
} catch (Exception e) {
b = false;
System.out.println("createPolicy exception "+e.getMessage());
}
if (!b)
System.out.println("createPolicy failed\n");
else
System.out.println("createPolicy succeeded\n");
System.out.println("*** verify creation");
try {
p = k.getPolicyList();
System.out.println("Called getPolicyList()");
} catch (Exception e) {
p = null;
System.out.println("getPolicyList exception "+e.getMessage());
}
for (int i = 0; p != null && i < p.length; i++)
if (p[i].equals("aliens"))
System.out.println("Found 'aliens' as expected");
System.out.println(new Integer(p.length).toString()+" entries.");
System.out.println("Policy list done\n");
System.out.println("*** delete a policy");
try {
b = k.deletePolicy("aliens");
} catch (Exception e) {
b = false;
System.out.println("deletePolicy exception "+e.getMessage());
}
if (!b)
System.out.println("deletePolicy failed\n");
else
System.out.println("deletePolicy succeeded\n");
System.out.println("*** verify deletion");
try {
p = k.getPolicyList();
System.out.println("Called getPolicyList()");
} catch (Exception e) {
p = null;
System.out.println("getPolicyList exception "+e.getMessage());
}
for (int i = 0; p != null && i < p.length; i++)
if (p[i].equals("aliens"))
System.out.println("Found 'aliens' - oops!");
System.out.println(new Integer(p.length).toString()+" entries.");
System.out.println("Policy list done\n");
System.out.println("*** load and store a principal");
try {
b = k.loadPrincipal("jnitest/admin", pr);
} catch (Exception e) {
b = false;
System.out.println("loadPrincipal exception "+e);
}
if (b) {
System.out.println("Loaded "+pr.toString());
pr.setPolicy("default");
System.out.println("Expiry "+pr.PrExpireTime.toString());
System.out.println("PwExpiry "+pr.PwExpireTime.toString());
try {
b = k.savePrincipal(pr);
} catch (Exception e) {
b = false;
System.out.println("savePrincipal exception "+e);
}
if (!b)
System.out.println("savePrincipal failed\n");
else
System.out.println("savePrincipal succeeded\n");
}
System.out.println("*** ensure a principal is absent");
try {
b = k.deletePrincipal("harriet");
System.out.println("deleted principal\n");
} catch (Exception e) {
System.out.println("Expected exception"+e+"\n");
}
System.out.println("*** create a principal");
pr = new Principal("harriet");
pr.setPassword("test123");
System.out.println("Built "+pr.toString());
try {
b = k.createPrincipal(pr);
} catch (Exception e) {
b = false;
System.out.println("createPrincipal exception "+e);
}
if (!b)
System.out.println("createPrincipal failed");
else
System.out.println("createPrincipal succeeded");
System.out.println("*** verify creation");
try {
p = k.getPrincipalList();
} catch (Exception e) {
p = null;
System.out.println("getPrincipalList exception "+e);
}
System.out.println("Called getPrincipalList()");
for (int i = 0; p != null && i < p.length; i++)
if (p[i].equals("harriet"))
System.out.println("Found 'harriet' as expected");
System.out.println(new Integer(p.length).toString()+" entries.");
System.out.println("Principal list done\n");
System.out.println("*** set comments");
pr = new Principal(k, d);
try {
b = k.loadPrincipal("harriet", pr);
} catch (Exception e) {
b = false;
System.out.println("loadPrincipal exception "+e);
}
if (b) {
pr.setComments("Who knows this user?");
try {
b = k.savePrincipal(pr);
} catch (Exception e) {
b = false;
System.out.println("savePrincipal exception "+e);
}
if (b) {
try {
b = k.loadPrincipal("harriet", pr);
} catch (Exception e) {
b = false;
System.out.println("loadPrincipal exception "+e);
}
System.out.println("Loaded "+pr.toString());
System.out.println("Comments are "+pr.Comments+"\n");
} else
System.out.println("savePrincipal failed");
}
System.out.println("*** set password");
pr = new Principal(k, d);
try {
b = k.loadPrincipal("harriet", pr);
} catch (Exception e) {
b = false;
System.out.println("loadPrincipal exception "+e);
}
if (b) {
pr.setPassword("test234");
try {
b = k.savePrincipal(pr);
} catch (Exception e) {
b = false;
System.out.println("savePrincipal exception "+e);
}
if (!b)
System.out.println("savePrincipal failed\n");
else
System.out.println("savePrincipal succeeded\n");
}
System.out.println("*** delete principal");
try {
b = k.deletePrincipal("harriet");
} catch (Exception e) {
b = false;
System.out.println("deletePrincipal exception "+e);
}
if (!b)
System.out.println("deletePrincipal failed\n");
else
System.out.println("deletePrincipal succeeded\n");
System.out.println("*** verify deletion");
try {
p = k.getPrincipalList();
System.out.println("Called getPrincipalList()");
} catch (Exception e) {
p = null;
System.out.println("getPrincipalList exception "+e);
}
for (int i = 0; p != null && i < p.length; i++)
if (p[i].equals("harriet"))
System.out.println("Found 'harriet' - oops!");
System.out.println(new Integer(p.length).toString()+" entries.");
System.out.println("Principal list done\n");
System.out.println("*** create a principal with comments");
pr = new Principal("harriet");
pr.setPassword("test123");
pr.setComments("Room 1229");
System.out.println("Built "+pr.toString());
try {
b = k.createPrincipal(pr);
} catch (Exception e) {
b = false;
System.out.println("createPrincipal exception "+e);
}
if (!b)
System.out.println("createPrincipal failed\n");
else
System.out.println("createPrincipal succeeded\n");
System.out.println("*** verify comments");
try {
b = k.loadPrincipal("harriet", pr);
} catch (Exception e) {
b = false;
System.out.println("loadPrincipal exception "+e);
}
if (b) {
System.out.println("Loaded "+pr.toString());
System.out.println("Comments "+pr.Comments+"\n");
try {
b = k.deletePrincipal("harriet");
} catch (Exception e) {
b = false;
System.out.println("deletePrincipal exception "+e);
}
}
System.out.println("All tests completed.\n");
k.sessionExit();
}
}