Skip to content

Commit 63f6804

Browse files
committed
Add simple PolicyParser unit test
Signed-off-by: Andrew Ross <[email protected]>
1 parent 89a6f4e commit 63f6804

File tree

2 files changed

+56
-2
lines changed

2 files changed

+56
-2
lines changed

libs/agent-sm/agent-policy/build.gradle

+3-2
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,6 @@ base {
2222

2323
disableTasks('forbiddenApisMain')
2424

25-
test.enabled = false
26-
testingConventions.enabled = false
25+
dependencies {
26+
testImplementation(project(":test:framework"))
27+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
*
4+
* The OpenSearch Contributors require contributions made to
5+
* this file be licensed under the Apache-2.0 license or a
6+
* compatible open source license.
7+
*/
8+
9+
package org.opensearch.secure_sm.policy;
10+
11+
import org.opensearch.test.OpenSearchTestCase;
12+
13+
import java.io.IOException;
14+
import java.io.Reader;
15+
import java.io.StringReader;
16+
import java.util.Enumeration;
17+
18+
public class PolicyParserTests extends OpenSearchTestCase {
19+
private static final String POLICY = """
20+
grant codeBase "TestCodeBase" {
21+
permission java.net.NetPermission "accessUnixDomainSocket";
22+
};
23+
24+
grant {
25+
permission java.net.NetPermission "accessUnixDomainSocket";
26+
permission java.net.SocketPermission "*", "accept,connect";
27+
};
28+
""";
29+
30+
public void testPolicy() throws IOException, PolicyParser.ParsingException {
31+
try (Reader reader = new StringReader(POLICY)) {
32+
final PolicyParser policyParser = new PolicyParser();
33+
policyParser.read(reader);
34+
35+
final Enumeration<PolicyParser.GrantEntry> grantEntryEnumeration = policyParser.grantElements();
36+
final PolicyParser.GrantEntry grantEntry1 = grantEntryEnumeration.nextElement();
37+
final PolicyParser.GrantEntry grantEntry2 = grantEntryEnumeration.nextElement();
38+
39+
assertEquals("TestCodeBase", grantEntry1.codeBase);
40+
assertEquals(1, grantEntry1.permissionEntries.size());
41+
assertEquals("java.net.NetPermission", grantEntry1.permissionEntries.getFirst().permission);
42+
assertEquals("accessUnixDomainSocket", grantEntry1.permissionEntries.getFirst().name);
43+
44+
assertNull(grantEntry2.codeBase);
45+
assertEquals(2, grantEntry2.permissionEntries.size());
46+
assertEquals("java.net.NetPermission", grantEntry2.permissionEntries.getFirst().permission);
47+
assertEquals("accessUnixDomainSocket", grantEntry2.permissionEntries.getFirst().name);
48+
assertEquals("java.net.SocketPermission", grantEntry2.permissionEntries.getLast().permission);
49+
assertEquals("*", grantEntry2.permissionEntries.getLast().name);
50+
assertEquals("accept,connect", grantEntry2.permissionEntries.getLast().action);
51+
}
52+
}
53+
}

0 commit comments

Comments
 (0)