java.dyn
Class LinkagePermission

java.lang.Object
  extended by java.security.Permission
      extended by java.security.BasicPermission
          extended by java.dyn.LinkagePermission
All Implemented Interfaces:
Serializable, Guard

public final class LinkagePermission
extends BasicPermission

Disabled: no SafeJ information.

This class is for runtime permissions. A RuntimePermission contains a name (also referred to as a "target name") but no actions list; you either have the named permission or you don't.

The target name is the name of the runtime permission (see below). The naming convention follows the hierarchical property naming convention. Also, an asterisk may appear at the end of the name, following a ".", or by itself, to signify a wildcard match. For example: "loadLibrary.*" or "*" is valid, "*loadLibrary" or "a*b" is not valid.

The following table lists all the possible RuntimePermission target names, and for each provides a description of what the permission allows and a discussion of the risks of granting code the permission.

Permission Target Name What the Permission Allows Risks of Allowing this Permission
registerBootstrapMethod.{class name} Specifying a bootstrap method for invokedynamic, within a class of the given name An attacker could attempt to attach a bootstrap method to a class which has just been loaded, thus gaining control of its invokedynamic calls.
invalidateAll Force the relinking of invokedynamic call sites everywhere. This could allow an attacker to slow down the system, or perhaps surface timing bugs in a dynamic language implementations, by forcing redundant relinking operations.
invalidateCallerClass.{class name} Force the relinking of invokedynamic call sites in the given class. See invalidateAll.

See Also:
BasicPermission, SecurityManager, Serialized Form

Constructor Summary
LinkagePermission(String name)
          Create a new LinkagePermission with the given name.
LinkagePermission(String name, Class<?> clazz)
          Create a new LinkagePermission with the given name on the given class.
 
Method Summary
 
Methods inherited from class java.security.BasicPermission
equals, getActions, hashCode, implies, newPermissionCollection
 
Methods inherited from class java.security.Permission
checkGuard, getName, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LinkagePermission

public LinkagePermission(String name)
Class is disabled.

Create a new LinkagePermission with the given name. The name is the symbolic name of the LinkagePermission, such as "registerBootstrapMethod", "invalidateCallerClass.*", etc. An asterisk may appear at the end of the name, following a ".", or by itself, to signify a wildcard match.

Parameters:
name - the name of the LinkagePermission

LinkagePermission

public LinkagePermission(String name,
                         Class<?> clazz)
Class is disabled.

Create a new LinkagePermission with the given name on the given class. Equivalent to LinkagePermission(name+"."+clazz.getName()).

Parameters:
name - the name of the LinkagePermission
clazz - the class affected by the permission