All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.oliviercailloux.javagrade.bytecode.SandboxSecurityPolicy Maven / Gradle / Ivy

The newest version!
package io.github.oliviercailloux.javagrade.bytecode;

import java.security.Permission;
import java.security.Policy;
import java.security.ProtectionDomain;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 *
 * Inspired by https://blog.jayway.com/2014/06/13/sandboxing-plugins-in-java/
 *
 */
@SuppressWarnings({"removal", "deprecation"})
public class SandboxSecurityPolicy extends Policy {
  @SuppressWarnings("unused")
  private static final Logger LOGGER = LoggerFactory.getLogger(SandboxSecurityPolicy.class);

  public static void setSecurity() {
    final SandboxSecurityPolicy myPolicy = new SandboxSecurityPolicy();
    Policy.setPolicy(myPolicy);
    System.setSecurityManager(new SecurityManager());
  }

  @Override
  public boolean implies(ProtectionDomain domain, Permission permission) {
    if (domain.getClassLoader() instanceof RestrictingClassLoader) {
      return domain.getPermissions().implies(permission);
    }
    return true;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy