org.apache.cassandra.cql3.functions

## Class ThreadAwareSecurityManager

- java.lang.Object
- - java.lang.SecurityManager
  - - org.apache.cassandra.cql3.functions.ThreadAwareSecurityManager

    public final class ThreadAwareSecurityManager
    extends java.lang.SecurityManager

Custom `SecurityManager` and `Policy` implementation that only performs access checks if explicitly enabled.

This implementation gives no measurable performance panalty (see see cstar test). This is better than the penalty of 1 to 3 percent using a standard `SecurityManager` with an allow all policy.

### Field Summary

### Fields inherited from class java.lang.SecurityManager

`inCheck`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `checkAccess(java.lang.Thread t)`
`void` `checkAccess(java.lang.ThreadGroup g)`
`void` `checkPackageAccess(java.lang.String pkg)`
`void` `checkPermission(java.security.Permission perm)`
`void` `checkPermission(java.security.Permission perm, java.lang.Object context)`
`static void` `install()`

### Methods inherited from class java.lang.SecurityManager

`checkAccept, checkAwtEventQueueAccess, checkConnect, checkConnect, checkCreateClassLoader, checkDelete, checkExec, checkExit, checkLink, checkListen, checkMemberAccess, checkMulticast, checkMulticast, checkPackageDefinition, checkPrintJobAccess, checkPropertiesAccess, checkPropertyAccess, checkRead, checkRead, checkRead, checkSecurityAccess, checkSetFactory, checkSystemClipboardAccess, checkTopLevelWindow, checkWrite, checkWrite, classDepth, classLoaderDepth, currentClassLoader, currentLoadedClass, getClassContext, getInCheck, getSecurityContext, getThreadGroup, inClass, inClassLoader`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### install

    public static void install()

#### 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`

#### checkPermission

    public void checkPermission(java.security.Permission perm)

Overrides:
  `checkPermission` in class `java.lang.SecurityManager`

#### checkPermission

    public void checkPermission(java.security.Permission perm,
                                java.lang.Object context)

Overrides:
  `checkPermission` in class `java.lang.SecurityManager`

#### checkPackageAccess

    public void checkPackageAccess(java.lang.String pkg)

Overrides:
  `checkPackageAccess` in class `java.lang.SecurityManager`