Skip to content

Commit 64060e0

Browse files
committed
Merge FileCheckActions and rename for overloads
1 parent ea6159c commit 64060e0

File tree

3 files changed

+148
-172
lines changed

3 files changed

+148
-172
lines changed

libs/entitlement/qa/entitlement-test-plugin/src/main/java/org/elasticsearch/entitlement/qa/test/FileCheckActions.java

Lines changed: 148 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@
99

1010
package org.elasticsearch.entitlement.qa.test;
1111

12+
import org.elasticsearch.core.CheckedRunnable;
1213
import org.elasticsearch.core.SuppressForbidden;
1314
import org.elasticsearch.entitlement.qa.entitled.EntitledActions;
1415

1516
import java.io.File;
1617
import java.io.FileDescriptor;
1718
import java.io.FileInputStream;
19+
import java.io.FileNotFoundException;
1820
import java.io.FileOutputStream;
1921
import java.io.FileReader;
2022
import java.io.FileWriter;
@@ -25,7 +27,17 @@
2527
import java.nio.file.Path;
2628
import java.nio.file.Paths;
2729
import java.nio.file.attribute.UserPrincipal;
28-
30+
import java.security.GeneralSecurityException;
31+
import java.security.KeyStore;
32+
import java.util.Scanner;
33+
import java.util.jar.JarFile;
34+
import java.util.zip.ZipException;
35+
import java.util.zip.ZipFile;
36+
37+
import static java.nio.charset.Charset.defaultCharset;
38+
import static java.util.zip.ZipFile.OPEN_DELETE;
39+
import static java.util.zip.ZipFile.OPEN_READ;
40+
import static org.elasticsearch.entitlement.qa.entitled.EntitledActions.createTempFileForWrite;
2941
import static org.elasticsearch.entitlement.qa.test.EntitlementTest.ExpectedAccess.ALWAYS_DENIED;
3042
import static org.elasticsearch.entitlement.qa.test.EntitlementTest.ExpectedAccess.PLUGINS;
3143

@@ -347,5 +359,140 @@ static void filesSetOwner() throws IOException {
347359
Files.setOwner(readWriteFile(), owner); // set to existing owner, just trying to execute the method
348360
}
349361

362+
@EntitlementTest(expectedAccess = PLUGINS)
363+
static void keystoreGetInstance_FileCharArray() throws IOException {
364+
try {
365+
KeyStore.getInstance(readFile().toFile(), new char[0]);
366+
} catch (GeneralSecurityException expected) {
367+
return;
368+
}
369+
throw new AssertionError("Expected an exception");
370+
}
371+
372+
@EntitlementTest(expectedAccess = PLUGINS)
373+
static void keystoreGetInstance_FileLoadStoreParameter() throws IOException {
374+
try {
375+
KeyStore.LoadStoreParameter loadStoreParameter = () -> null;
376+
KeyStore.getInstance(readFile().toFile(), loadStoreParameter);
377+
} catch (GeneralSecurityException expected) {
378+
return;
379+
}
380+
throw new AssertionError("Expected an exception");
381+
}
382+
383+
@EntitlementTest(expectedAccess = PLUGINS)
384+
static void keystoreBuilderNewInstance() {
385+
try {
386+
KeyStore.Builder.newInstance("", null, readFile().toFile(), null);
387+
} catch (NullPointerException expected) {
388+
return;
389+
}
390+
throw new AssertionError("Expected an exception");
391+
}
392+
393+
@EntitlementTest(expectedAccess = PLUGINS)
394+
static void zipFile_String() throws IOException {
395+
expectZipException(() -> new ZipFile(readFile().toString()).close());
396+
}
397+
398+
@EntitlementTest(expectedAccess = PLUGINS)
399+
static void zipFile_StringCharset() throws IOException {
400+
expectZipException(() -> new ZipFile(readFile().toString(), defaultCharset()).close());
401+
}
402+
403+
@EntitlementTest(expectedAccess = PLUGINS)
404+
static void zipFile_File() throws IOException {
405+
expectZipException(() -> new ZipFile(readFile().toFile()).close());
406+
}
407+
408+
@EntitlementTest(expectedAccess = PLUGINS)
409+
static void zipFile_FileCharset() throws IOException {
410+
expectZipException(() -> new ZipFile(readFile().toFile(), defaultCharset()).close());
411+
}
412+
413+
@EntitlementTest(expectedAccess = PLUGINS)
414+
static void zipFile_FileReadOnly() throws IOException {
415+
expectZipException(() -> new ZipFile(readFile().toFile(), OPEN_READ).close());
416+
}
417+
418+
@EntitlementTest(expectedAccess = PLUGINS)
419+
static void zipFile_FileReadAndDelete() throws IOException {
420+
expectZipException(() -> new ZipFile(createTempFileForWrite().toFile(), OPEN_READ | OPEN_DELETE).close());
421+
}
422+
423+
@EntitlementTest(expectedAccess = PLUGINS)
424+
static void zipFile_ReadOnlyCharset() throws IOException {
425+
expectZipException(() -> new ZipFile(readFile().toFile(), OPEN_READ, defaultCharset()).close());
426+
}
427+
428+
@EntitlementTest(expectedAccess = PLUGINS)
429+
static void zipFile_ReadAndDeleteCharset() throws IOException {
430+
expectZipException(() -> new ZipFile(createTempFileForWrite().toFile(), OPEN_READ | OPEN_DELETE, defaultCharset()).close());
431+
}
432+
433+
@EntitlementTest(expectedAccess = PLUGINS)
434+
static void jarFile_String() throws IOException {
435+
expectZipException(() -> new JarFile(readFile().toString()).close());
436+
}
437+
438+
@EntitlementTest(expectedAccess = PLUGINS)
439+
static void jarFile_StringBoolean() throws IOException {
440+
expectZipException(() -> new JarFile(readFile().toString(), false).close());
441+
}
442+
443+
@EntitlementTest(expectedAccess = PLUGINS)
444+
static void jarFile_FileReadOnly() throws IOException {
445+
expectZipException(() -> new JarFile(readFile().toFile(), false, OPEN_READ).close());
446+
}
447+
448+
@EntitlementTest(expectedAccess = PLUGINS)
449+
static void jarFile_FileReadAndDelete() throws IOException {
450+
expectZipException(() -> new JarFile(createTempFileForWrite().toFile(), false, OPEN_READ | OPEN_DELETE).close());
451+
}
452+
453+
@EntitlementTest(expectedAccess = PLUGINS)
454+
static void jarFile_FileBooleanReadOnlyVersion() throws IOException {
455+
expectZipException(() -> new JarFile(readFile().toFile(), false, OPEN_READ, Runtime.version()).close());
456+
}
457+
458+
@EntitlementTest(expectedAccess = PLUGINS)
459+
static void jarFile_FileBooleanReadAndDeleteOnlyVersion() throws IOException {
460+
expectZipException(() -> new JarFile(createTempFileForWrite().toFile(), false, OPEN_READ | OPEN_DELETE, Runtime.version()).close());
461+
}
462+
463+
@EntitlementTest(expectedAccess = PLUGINS)
464+
static void jarFile_File() throws IOException {
465+
expectZipException(() -> new JarFile(readFile().toFile()).close());
466+
}
467+
468+
@EntitlementTest(expectedAccess = PLUGINS)
469+
static void jarFileFileBoolean() throws IOException {
470+
expectZipException(() -> new JarFile(readFile().toFile(), false).close());
471+
}
472+
473+
private static void expectZipException(CheckedRunnable<IOException> action) throws IOException {
474+
try {
475+
action.run();
476+
} catch (ZipException expected) {
477+
return;
478+
}
479+
throw new AssertionError("Expected an exception");
480+
}
481+
482+
@EntitlementTest(expectedAccess = PLUGINS)
483+
static void createScannerFile() throws FileNotFoundException {
484+
new Scanner(readFile().toFile());
485+
}
486+
487+
@EntitlementTest(expectedAccess = PLUGINS)
488+
static void createScannerFileWithCharset() throws IOException {
489+
new Scanner(readFile().toFile(), StandardCharsets.UTF_8);
490+
}
491+
492+
@EntitlementTest(expectedAccess = PLUGINS)
493+
static void createScannerFileWithCharsetName() throws FileNotFoundException {
494+
new Scanner(readFile().toFile(), "UTF-8");
495+
}
496+
350497
private FileCheckActions() {}
351498
}

libs/entitlement/qa/entitlement-test-plugin/src/main/java/org/elasticsearch/entitlement/qa/test/JavaBaseFileActions.java

Lines changed: 0 additions & 170 deletions
This file was deleted.

libs/entitlement/qa/entitlement-test-plugin/src/main/java/org/elasticsearch/entitlement/qa/test/RestEntitlementsCheckAction.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,6 @@ static CheckAction alwaysDenied(CheckedRunnable<Exception> action) {
187187
),
188188
getTestEntries(FileCheckActions.class),
189189
getTestEntries(FileStoreActions.class),
190-
getTestEntries(JavaBaseFileActions.class),
191190
getTestEntries(ManageThreadsActions.class),
192191
getTestEntries(NativeActions.class),
193192
getTestEntries(NioFileSystemActions.class),

0 commit comments

Comments
 (0)