Skip to content

Commit d5e1c00

Browse files
committed
Fix tests
Signed-off-by: Gulshan Kumar <[email protected]>
1 parent d0bc0dc commit d5e1c00

File tree

3 files changed

+24
-5
lines changed

3 files changed

+24
-5
lines changed

libs/agent-sm/agent/src/main/java/org/opensearch/javaagent/SocketChannelInterceptor.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,19 +52,20 @@ public static void intercept(@Advice.AllArguments Object[] args, @Origin Method
5252
if (args[0] instanceof InetSocketAddress address) {
5353
if (!AgentPolicy.isTrustedHost(address.getHostString())) {
5454
final String host = address.getHostString() + ":" + address.getPort();
55-
56-
final SocketPermission permission = new SocketPermission(host, "connect,resolve");
55+
final SocketPermission connectResolve = new SocketPermission(host, "connect,resolve");
56+
final SocketPermission listenResolve = new SocketPermission(host, "listen,resolve");
5757
for (final ProtectionDomain domain : callers) {
58-
if (!policy.implies(domain, permission)) {
59-
throw new SecurityException("Denied access to: " + host + ", domain " + domain);
58+
boolean hasPermission = policy.implies(domain, connectResolve) || policy.implies(domain, listenResolve);
59+
if (!hasPermission) {
60+
throw new SecurityException("Denied access to: " + host + ", domain: " + domain);
6061
}
6162
}
6263
}
6364
} else if (args[0] instanceof UnixDomainSocketAddress address) {
6465
final NetPermission permission = new NetPermission("accessUnixDomainSocket");
6566
for (final ProtectionDomain domain : callers) {
6667
if (!policy.implies(domain, permission)) {
67-
throw new SecurityException("Denied access to: " + address + ", domain " + domain);
68+
throw new SecurityException("Denied access to: " + address + ", domain: " + domain);
6869
}
6970
}
7071
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
grant {
2+
permission java.net.SocketPermission "*", "connect,resolve";
3+
permission java.net.NetPermission "accessUnixDomainSocket";
4+
permission java.net.SocketPermission "localhost:0", "listen,resolve";
5+
};
6+
7+
8+
grant codeBase "${codebase.opensearch-nio}" {
9+
permission java.net.NetPermission "accessUnixDomainSocket";
10+
};
11+
12+
grant {
13+
permission java.net.NetPermission "accessUnixDomainSocket";
14+
permission java.net.SocketPermission "*", "accept,connect";
15+
permission java.net.SocketPermission "localhost:0", "listen,resolve";
16+
};

server/src/test/java/org/opensearch/ExceptionSerializationTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.apache.lucene.index.IndexFormatTooOldException;
3737
import org.apache.lucene.store.AlreadyClosedException;
3838
import org.apache.lucene.store.LockObtainFailedException;
39+
import org.apache.lucene.tests.util.LuceneTestCase.AwaitsFix;
3940
import org.opensearch.action.FailedNodeException;
4041
import org.opensearch.action.OriginalIndices;
4142
import org.opensearch.action.RoutingMissingException;
@@ -162,6 +163,7 @@
162163

163164
public class ExceptionSerializationTests extends OpenSearchTestCase {
164165

166+
@AwaitsFix(bugUrl = "https://github.com/opensearch-project/OpenSearch/issues/16731")
165167
public void testExceptionRegistration() throws ClassNotFoundException, IOException, URISyntaxException {
166168
final Set<Class<?>> notRegistered = new HashSet<>();
167169
final Set<Class<?>> hasDedicatedWrite = new HashSet<>();

0 commit comments

Comments
 (0)