Class ArtemisSecurityManager

java.lang.Object
java.lang.SecurityManager
de.tum.in.test.api.security.ArtemisSecurityManager

public final class ArtemisSecurityManager
extends java.lang.SecurityManager
Prevents System.exit, reflection to a certain degree, networking use, execution commands and long running threads.
Author:
Christian Femers
  • Method Details

    • checkExit

      public void checkExit​(int status)
      Overrides:
      checkExit in class java.lang.SecurityManager
    • checkAccept

      public void checkAccept​(java.lang.String host, int port)
      Overrides:
      checkAccept in class java.lang.SecurityManager
    • checkConnect

      public void checkConnect​(java.lang.String host, int port)
      Overrides:
      checkConnect in class java.lang.SecurityManager
    • checkConnect

      public void checkConnect​(java.lang.String host, int port, java.lang.Object context)
      Overrides:
      checkConnect in class java.lang.SecurityManager
    • checkListen

      public void checkListen​(int port)
      Overrides:
      checkListen in class java.lang.SecurityManager
    • checkMulticast

      public void checkMulticast​(java.net.InetAddress maddr)
      Overrides:
      checkMulticast in class java.lang.SecurityManager
    • checkExec

      public void checkExec​(java.lang.String cmd)
      Overrides:
      checkExec in class java.lang.SecurityManager
    • checkPrintJobAccess

      public void checkPrintJobAccess()
      Overrides:
      checkPrintJobAccess in class java.lang.SecurityManager
    • checkCreateClassLoader

      public void checkCreateClassLoader()
      Overrides:
      checkCreateClassLoader in class java.lang.SecurityManager
    • checkAccess

      public void checkAccess​(java.lang.Thread t)
      Overrides:
      checkAccess in class java.lang.SecurityManager
    • checkAccess

      public void checkAccess​(java.lang.ThreadGroup g)
      Overrides:
      checkAccess in class java.lang.SecurityManager
    • checkPackageDefinition

      public void checkPackageDefinition​(java.lang.String pkg)
      Overrides:
      checkPackageDefinition in class java.lang.SecurityManager
    • checkPermission

      public void checkPermission​(java.security.Permission perm)
      Overrides:
      checkPermission in class java.lang.SecurityManager
    • checkPackageAccess

      public void checkPackageAccess​(java.lang.String pkg)
      Overrides:
      checkPackageAccess in class java.lang.SecurityManager
    • firstNonWhitelisted

      public static java.util.Optional<java.lang.StackTraceElement> firstNonWhitelisted​(java.lang.StackTraceElement... elements)
    • checkCurrentStack

      public static void checkCurrentStack​(java.util.function.Supplier<java.lang.String> exceptionMessage)
    • getThreadGroup

      public java.lang.ThreadGroup getThreadGroup()
      Overrides:
      getThreadGroup in class java.lang.SecurityManager
    • isInstalled

      public static boolean isInstalled()
    • install

      public static java.lang.String install​(ArtemisSecurityConfiguration configuration)
    • uninstall

      public static void uninstall​(java.lang.String accessToken)
    • configure

      public static void configure​(java.lang.String accessToken, ArtemisSecurityConfiguration configuration)
    • requestThreadWhitelisting

      public static void requestThreadWhitelisting​(java.lang.Thread t)
    • revokeThreadWhitelisting

      public static void revokeThreadWhitelisting()
    • getOnSuppressedModification

      public static java.util.function.BiConsumer<java.lang.String,​java.lang.Object> getOnSuppressedModification()