提交 d3f3c958 编写于 作者: W weijun

7040916: DynamicKeyTab test fails on Windows

Reviewed-by: xuelei
上级 7244d5ec
......@@ -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);
}
}
}
......@@ -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");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册