grant {
  // bouncy castle
  permission java.security.SecurityPermission "putProviderProperty.BC";

  // needed for x-pack security extension
  permission java.security.SecurityPermission "createPolicy.JavaPolicy";
  permission java.security.SecurityPermission "getPolicy";
  permission java.security.SecurityPermission "setPolicy";
  permission java.util.PropertyPermission "*", "read,write";

  // needed for multiple server implementations used in tests
  permission java.net.SocketPermission "*", "accept,connect";
};

grant codeBase "${codebase.netty-common}" {
   // for reading the system-wide configuration for the backlog of established sockets
   permission java.io.FilePermission "/proc/sys/net/core/somaxconn", "read";
   // Netty sets custom classloader for some of its internal threads
   permission java.lang.RuntimePermission "*", "setContextClassLoader";
};

grant codeBase "${codebase.netty-transport}" {
   // Netty NioEventLoop wants to change this, because of https://bugs.openjdk.java.net/browse/JDK-6427854
   // the bug says it only happened rarely, and that its fixed, but apparently it still happens rarely!
   permission java.util.PropertyPermission "sun.nio.ch.bugLevel", "write";
};

grant codeBase "${codebase.elasticsearch-rest-client}" {
  // rest client uses system properties which gets the default proxy
  permission java.net.NetPermission "getProxySelector";
};

grant codeBase "${codebase.httpasyncclient}" {
  // rest client uses system properties which gets the default proxy
  permission java.net.NetPermission "getProxySelector";
};
