7040916: DynamicKeyTab test fails on Windows

Reviewed-by: xuelei
This commit is contained in:
Weijun Wang 2011-05-01 14:22:32 +08:00
parent abc0e63cbc
commit 317bcf10c2
2 changed files with 25 additions and 22 deletions

View File

@ -92,10 +92,10 @@ public class KeyTab implements KeyTabConstants {
tabName = filename;
try {
lastModified = new File(tabName).lastModified();
KeyTabInputStream kis =
new KeyTabInputStream(new FileInputStream(filename));
load(kis);
kis.close();
try (KeyTabInputStream kis =
new KeyTabInputStream(new FileInputStream(filename))) {
load(kis);
}
} catch (FileNotFoundException e) {
entries.clear();
isMissing = true;
@ -439,10 +439,10 @@ public class KeyTab implements KeyTabConstants {
public synchronized static KeyTab create(String name)
throws IOException, RealmException {
KeyTabOutputStream kos =
new KeyTabOutputStream(new FileOutputStream(name));
kos.writeVersion(KRB5_KT_VNO);
kos.close();
try (KeyTabOutputStream kos =
new KeyTabOutputStream(new FileOutputStream(name))) {
kos.writeVersion(KRB5_KT_VNO);
}
return new KeyTab(name);
}
@ -450,13 +450,13 @@ public class KeyTab implements KeyTabConstants {
* Saves the file at the directory.
*/
public synchronized void save() throws IOException {
KeyTabOutputStream kos =
new KeyTabOutputStream(new FileOutputStream(tabName));
kos.writeVersion(kt_vno);
for (int i = 0; i < entries.size(); i++) {
kos.writeEntry(entries.elementAt(i));
try (KeyTabOutputStream kos =
new KeyTabOutputStream(new FileOutputStream(tabName))) {
kos.writeVersion(kt_vno);
for (int i = 0; i < entries.size(); i++) {
kos.writeEntry(entries.elementAt(i));
}
}
kos.close();
}
/**
@ -519,9 +519,9 @@ public class KeyTab implements KeyTabConstants {
* @exception IOException.
*/
public synchronized void createVersion(File file) throws IOException {
KeyTabOutputStream kos =
new KeyTabOutputStream(new FileOutputStream(file));
kos.write16(KRB5_KT_VNO);
kos.close();
try (KeyTabOutputStream kos =
new KeyTabOutputStream(new FileOutputStream(file))) {
kos.write16(KRB5_KT_VNO);
}
}
}

View File

@ -30,6 +30,8 @@
import java.io.File;
import java.io.FileOutputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import org.ietf.jgss.GSSException;
import sun.security.jgss.GSSUtil;
import sun.security.krb5.KrbException;
@ -47,8 +49,7 @@ public class DynamicKeytab {
OneKDC k = new OneKDC(null);
k.writeJAASConf();
new File(OneKDC.KTAB).delete();
Files.delete(Paths.get(OneKDC.KTAB));
// Starts with no keytab
c = Context.fromJAAS("client");
@ -79,11 +80,13 @@ public class DynamicKeytab {
connect();
// Test 5: invalid keytab file, should ignore
new FileOutputStream(OneKDC.KTAB).write("BADBADBAD".getBytes());
try (FileOutputStream fos = new FileOutputStream(OneKDC.KTAB)) {
fos.write("BADBADBAD".getBytes());
}
connect();
// Test 6: delete keytab file, identical to revoke all
new File(OneKDC.KTAB).delete();
Files.delete(Paths.get(OneKDC.KTAB));
try {
connect();
throw new Exception("Should not success");