Package de.tum.in.test.api.security
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 Summary
Modifier and Type Method Description voidcheckAccept(java.lang.String host, int port)voidcheckAccess(java.lang.Thread t)voidcheckAccess(java.lang.ThreadGroup g)voidcheckConnect(java.lang.String host, int port)voidcheckConnect(java.lang.String host, int port, java.lang.Object context)voidcheckCreateClassLoader()static voidcheckCurrentStack(java.util.function.Supplier<java.lang.String> exceptionMessage)voidcheckExec(java.lang.String cmd)voidcheckExit(int status)voidcheckListen(int port)voidcheckMulticast(java.net.InetAddress maddr)voidcheckPackageAccess(java.lang.String pkg)voidcheckPackageDefinition(java.lang.String pkg)voidcheckPermission(java.security.Permission perm)voidcheckPrintJobAccess()static voidconfigure(java.lang.String accessToken, ArtemisSecurityConfiguration configuration)static java.util.Optional<java.lang.StackTraceElement>firstNonWhitelisted(java.lang.StackTraceElement... elements)static java.util.function.BiConsumer<java.lang.String,java.lang.Object>getOnSuppressedModification()java.lang.ThreadGroupgetThreadGroup()static java.lang.Stringinstall(ArtemisSecurityConfiguration configuration)static booleanisInstalled()static voidrequestThreadWhitelisting(java.lang.Thread t)static voidrevokeThreadWhitelisting()static voiduninstall(java.lang.String accessToken)
-
Method Details
-
checkExit
public void checkExit(int status)- Overrides:
checkExitin classjava.lang.SecurityManager
-
checkAccept
public void checkAccept(java.lang.String host, int port)- Overrides:
checkAcceptin classjava.lang.SecurityManager
-
checkConnect
public void checkConnect(java.lang.String host, int port)- Overrides:
checkConnectin classjava.lang.SecurityManager
-
checkConnect
public void checkConnect(java.lang.String host, int port, java.lang.Object context)- Overrides:
checkConnectin classjava.lang.SecurityManager
-
checkListen
public void checkListen(int port)- Overrides:
checkListenin classjava.lang.SecurityManager
-
checkMulticast
public void checkMulticast(java.net.InetAddress maddr)- Overrides:
checkMulticastin classjava.lang.SecurityManager
-
checkExec
public void checkExec(java.lang.String cmd)- Overrides:
checkExecin classjava.lang.SecurityManager
-
checkPrintJobAccess
public void checkPrintJobAccess()- Overrides:
checkPrintJobAccessin classjava.lang.SecurityManager
-
checkCreateClassLoader
public void checkCreateClassLoader()- Overrides:
checkCreateClassLoaderin classjava.lang.SecurityManager
-
checkAccess
public void checkAccess(java.lang.Thread t)- Overrides:
checkAccessin classjava.lang.SecurityManager
-
checkAccess
public void checkAccess(java.lang.ThreadGroup g)- Overrides:
checkAccessin classjava.lang.SecurityManager
-
checkPackageDefinition
public void checkPackageDefinition(java.lang.String pkg)- Overrides:
checkPackageDefinitionin classjava.lang.SecurityManager
-
checkPermission
public void checkPermission(java.security.Permission perm)- Overrides:
checkPermissionin classjava.lang.SecurityManager
-
checkPackageAccess
public void checkPackageAccess(java.lang.String pkg)- Overrides:
checkPackageAccessin classjava.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:
getThreadGroupin classjava.lang.SecurityManager
-
isInstalled
public static boolean isInstalled() -
install
-
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()
-