@@ -52,19 +52,20 @@ public static void intercept(@Advice.AllArguments Object[] args, @Origin Method
52
52
if (args [0 ] instanceof InetSocketAddress address ) {
53
53
if (!AgentPolicy .isTrustedHost (address .getHostString ())) {
54
54
final String host = address .getHostString () + ":" + address .getPort ();
55
-
56
- final SocketPermission permission = new SocketPermission (host , "connect,resolve" );
55
+ final SocketPermission connectResolve = new SocketPermission ( "*" , "connect,resolve" );
56
+ final SocketPermission allSocketActions = new SocketPermission ("*" , "connect,resolve,listen,accept " );
57
57
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 , allSocketActions );
59
+ if (!hasPermission ) {
60
+ throw new SecurityException ("Denied access to: " + host + ", domain: " + domain );
60
61
}
61
62
}
62
63
}
63
64
} else if (args [0 ] instanceof UnixDomainSocketAddress address ) {
64
65
final NetPermission permission = new NetPermission ("accessUnixDomainSocket" );
65
66
for (final ProtectionDomain domain : callers ) {
66
67
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 );
68
69
}
69
70
}
70
71
}
0 commit comments