## Uses of Class
java.security.Permission

- Packages that use Permission
  Package | Description
  --- | ---
  com.sun.jdi | This is the core package of the Java Debug Interface (JDI), it defines mirrors for values, types, and the target VirtualMachine itself - as well bootstrapping facilities.
  com.sun.security.jgss | This package defines classes and interfaces for the JDK extensions to the GSS-API.
  com.sun.tools.attach | Provides the API to attach to a Java™ virtual machine.
  java.awt | Contains all of the classes for creating user interfaces and for painting graphics and images.
  java.io | Provides for system input and output through data streams, serialization and the file system.
  java.lang | Provides classes that are fundamental to the design of the Java programming language.
  java.lang.management | Provides the management interfaces for monitoring and management of the Java virtual machine and other components in the Java runtime.
  java.lang.reflect | Provides classes and interfaces for obtaining reflective information about classes and objects.
  java.net | Provides the classes for implementing networking applications.
  java.nio.file | Defines interfaces and classes for the Java virtual machine to access files, file attributes, and file systems.
  java.security | Provides the classes and interfaces for the security framework.
  java.sql | Provides the API for accessing and processing data stored in a data source (usually a relational database) using the Java™ programming language.
  java.util | Contains the collections framework, some internationalization support classes, a service loader, properties, random number generation, string parsing and scanning classes, base64 encoding and decoding, a bit array, and several miscellaneous utility classes.
  java.util.logging | Provides the classes and interfaces of the Java™ 2 platform's core logging facilities.
  javax.management | Provides the core classes for the Java Management Extensions.
  javax.management.remote | Interfaces for remote access to JMX MBean servers.
  javax.net.ssl | Provides classes for the secure socket package.
  javax.security.auth | This package provides a framework for authentication and authorization.
  javax.security.auth.kerberos | This package contains utility classes related to the Kerberos network authentication protocol.
  javax.smartcardio | Java™ Smart Card I/O API.
  javax.sound.sampled | Provides interfaces and classes for capture, processing, and playback of sampled audio data.
  jdk.jfr | This package provides classes to create events and control Flight Recorder.
  jdk.net | Platform specific socket options for the `java.net` and `java.nio.channels` socket classes.

- - ### Uses of Permission in com.sun.jdi

    Subclasses of Permission in com.sun.jdi
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `JDIPermission` | The `JDIPermission` class represents access rights to the `VirtualMachineManager`.

  - ### Uses of Permission in com.sun.security.jgss

    Subclasses of Permission in com.sun.security.jgss
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `InquireSecContextPermission` | This class is used to protect various attributes of an established GSS security context that can be accessed using the `ExtendedGSSContext.inquireSecContext(com.sun.security.jgss.InquireType)` method.

  - ### Uses of Permission in com.sun.tools.attach

    Subclasses of Permission in com.sun.tools.attach
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AttachPermission` | When a `SecurityManager` set, this is the permission which will be checked when code invokes `VirtualMachine.attach` to attach to a target virtual machine.

  - ### Uses of Permission in java.awt

    Subclasses of Permission in java.awt
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AWTPermission` | This class is for AWT permissions.

  - ### Uses of Permission in java.io

    Subclasses of Permission in java.io
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `FilePermission` | This class represents access to a file or directory.
    `class` | `SerializablePermission` | This class is for Serializable permissions.

    Methods in java.io with parameters of type Permission
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | FilePermission.`implies​(Permission p)` | Checks if this FilePermission object "implies" the specified permission.

  - ### Uses of Permission in java.lang

    Subclasses of Permission in java.lang
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `RuntimePermission` | This class is for runtime permissions.

    Methods in java.lang with parameters of type Permission
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | SecurityManager.`checkPermission​(Permission perm)` | Throws a `SecurityException` if the requested access, specified by the given permission, is not permitted based on the security policy currently in effect.
    `void` | SecurityManager.`checkPermission​(Permission perm, Object context)` | Throws a `SecurityException` if the specified security context is denied access to the resource specified by the given permission.

  - ### Uses of Permission in java.lang.management

    Subclasses of Permission in java.lang.management
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ManagementPermission` | The permission which the SecurityManager will check when code that is running with a SecurityManager calls methods defined in the management interface for the Java platform.

  - ### Uses of Permission in java.lang.reflect

    Subclasses of Permission in java.lang.reflect
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ReflectPermission` | The Permission class for reflective operations.

  - ### Uses of Permission in java.net

    Subclasses of Permission in java.net
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `NetPermission` | This class is for various network permissions.
    `class` | `SocketPermission` | This class represents access to a network via sockets.
    `class` | `URLPermission` | Represents permission to access a resource or set of resources defined by a given url, and for a given set of user-settable request methods and request headers.

    Methods in java.net that return Permission
    Modifier and Type | Method | Description
    --- | --- | ---
    `Permission` | HttpURLConnection.`getPermission()` | Returns a `SocketPermission` object representing the permission necessary to connect to the destination host and port.
    `Permission` | URLConnection.`getPermission()` | Returns a permission object representing the permission necessary to make the connection represented by this object.

    Methods in java.net with parameters of type Permission
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | SocketPermission.`implies​(Permission p)` | Checks if this socket permission object "implies" the specified permission.
    `boolean` | URLPermission.`implies​(Permission p)` | Checks if this URLPermission implies the given permission.

  - ### Uses of Permission in java.nio.file

    Subclasses of Permission in java.nio.file
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `LinkPermission` | The `Permission` class for link creation operations.

  - ### Uses of Permission in java.security

    Subclasses of Permission in java.security
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AllPermission` | The AllPermission is a permission that implies all other permissions.
    `class` | `BasicPermission` | The BasicPermission class extends the Permission class, and can be used as the base class for permissions that want to follow the same naming convention as BasicPermission.
    `class` | `SecurityPermission` | This class is for security permissions.
    `class` | `UnresolvedPermission` | The UnresolvedPermission class is used to hold Permissions that were "unresolved" when the Policy was initialized.

    Methods in java.security that return Permission
    Modifier and Type | Method | Description
    --- | --- | ---
    `Permission` | AccessControlException.`getPermission()` | Gets the Permission object associated with this exception, or null if there was no corresponding Permission object.

    Methods in java.security that return types with arguments of type Permission
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract Enumeration<Permission>` | PermissionCollection.`elements()` | Returns an enumeration of all the Permission objects in the collection.
    `Enumeration<Permission>` | Permissions.`elements()` | Returns an enumeration of all the Permission objects in all the PermissionCollections in this Permissions object.
    `Stream<Permission>` | PermissionCollection.`elementsAsStream()` | Returns a stream of all the Permission objects in the collection.

    Methods in java.security with parameters of type Permission
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract void` | PermissionCollection.`add​(Permission permission)` | Adds a permission object to the current collection of permission objects.
    `void` | Permissions.`add​(Permission permission)` | Adds a permission object to the PermissionCollection for the class the permission belongs to.
    `void` | AccessControlContext.`checkPermission​(Permission perm)` | Determines whether the access request indicated by the specified permission should be allowed or denied, based on the security policy currently in effect, and the context in this object.
    `static void` | AccessController.`checkPermission​(Permission perm)` | Determines whether the access request indicated by the specified permission should be allowed or denied, based on the current AccessControlContext and security policy.
    `static <T> T` | AccessController.`doPrivileged​(PrivilegedAction<T> action, AccessControlContext context, Permission... perms)` | Performs the specified `PrivilegedAction` with privileges enabled and restricted by the specified `AccessControlContext` and with a privilege scope limited by specified `Permission` arguments.
    `static <T> T` | AccessController.`doPrivileged​(PrivilegedExceptionAction<T> action, AccessControlContext context, Permission... perms)` | Performs the specified `PrivilegedExceptionAction` with privileges enabled and restricted by the specified `AccessControlContext` and with a privilege scope limited by specified `Permission` arguments.
    `static <T> T` | AccessController.`doPrivilegedWithCombiner​(PrivilegedAction<T> action, AccessControlContext context, Permission... perms)` | Performs the specified `PrivilegedAction` with privileges enabled and restricted by the specified `AccessControlContext` and with a privilege scope limited by specified `Permission` arguments.
    `static <T> T` | AccessController.`doPrivilegedWithCombiner​(PrivilegedExceptionAction<T> action, AccessControlContext context, Permission... perms)` | Performs the specified `PrivilegedExceptionAction` with privileges enabled and restricted by the specified `AccessControlContext` and with a privilege scope limited by specified `Permission` arguments.
    `protected abstract boolean` | PolicySpi.`engineImplies​(ProtectionDomain domain, Permission permission)` | Check whether the policy has granted a Permission to a ProtectionDomain.
    `boolean` | AllPermission.`implies​(Permission p)` | Checks if the specified permission is "implied" by this object.
    `boolean` | BasicPermission.`implies​(Permission p)` | Checks if the specified permission is "implied" by this object.
    `abstract boolean` | Permission.`implies​(Permission permission)` | Checks if the specified permission's actions are "implied by" this object's actions.
    `abstract boolean` | PermissionCollection.`implies​(Permission permission)` | Checks to see if the specified permission is implied by the collection of Permission objects held in this PermissionCollection.
    `boolean` | Permissions.`implies​(Permission permission)` | Checks to see if this object's PermissionCollection for permissions of the specified permission's class implies the permissions expressed in the permission object.
    `boolean` | Policy.`implies​(ProtectionDomain domain, Permission permission)` | Evaluates the global policy for the permissions granted to the ProtectionDomain and tests whether the permission is granted.
    `boolean` | ProtectionDomain.`implies​(Permission perm)` | Check and see if this ProtectionDomain implies the permissions expressed in the Permission object.
    `boolean` | UnresolvedPermission.`implies​(Permission p)` | This method always returns false for unresolved permissions.

    Constructors in java.security with parameters of type Permission
    Constructor | Description
    --- | ---
    `AccessControlException​(String s, Permission p)` | Constructs an `AccessControlException` with the specified, detailed message, and the requested permission that caused the exception.

  - ### Uses of Permission in java.sql

    Subclasses of Permission in java.sql
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `SQLPermission` | The permission for which the `SecurityManager` will check when code that is running an application with a `SecurityManager` enabled, calls the `DriverManager.deregisterDriver` method, `DriverManager.setLogWriter` method, `DriverManager.setLogStream` (deprecated) method, `SyncFactory.setJNDIContext` method, `SyncFactory.setLogger` method, `Connection.setNetworkTimeout` method, or the `Connection.abort` method.

  - ### Uses of Permission in java.util

    Subclasses of Permission in java.util
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `PropertyPermission` | This class is for property permissions.

    Methods in java.util with parameters of type Permission
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | PropertyPermission.`implies​(Permission p)` | Checks if this PropertyPermission object "implies" the specified permission.

  - ### Uses of Permission in java.util.logging

    Subclasses of Permission in java.util.logging
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `LoggingPermission` | The permission which the SecurityManager will check when code that is running with a SecurityManager calls one of the logging control methods (such as Logger.setLevel).

  - ### Uses of Permission in javax.management

    Subclasses of Permission in javax.management
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `MBeanPermission` | Permission controlling access to MBeanServer operations.
    `class` | `MBeanServerPermission` | A Permission to perform actions related to MBeanServers.
    `class` | `MBeanTrustPermission` | This permission represents "trust" in a signer or codebase.

    Methods in javax.management with parameters of type Permission
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | MBeanPermission.`implies​(Permission p)` | Checks if this MBeanPermission object "implies" the specified permission.
    `boolean` | MBeanServerPermission.`implies​(Permission p)` | Checks if this MBeanServerPermission object "implies" the specified permission.

  - ### Uses of Permission in javax.management.remote

    Subclasses of Permission in javax.management.remote
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `SubjectDelegationPermission` | Permission required by an authentication identity to perform operations on behalf of an authorization identity.

  - ### Uses of Permission in javax.net.ssl

    Subclasses of Permission in javax.net.ssl
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `SSLPermission` | This class is for various network permissions.

  - ### Uses of Permission in javax.security.auth

    Subclasses of Permission in javax.security.auth
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AuthPermission` | This class is for authentication permissions.
    `class` | `PrivateCredentialPermission` | This class is used to protect access to private Credentials belonging to a particular `Subject`.

    Methods in javax.security.auth with parameters of type Permission
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | PrivateCredentialPermission.`implies​(Permission p)` | Checks if this `PrivateCredentialPermission` implies the specified `Permission`.

  - ### Uses of Permission in javax.security.auth.kerberos

    Subclasses of Permission in javax.security.auth.kerberos
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `DelegationPermission` | This class is used to restrict the usage of the Kerberos delegation model, ie: forwardable and proxiable tickets.
    `class` | `ServicePermission` | This class is used to protect Kerberos services and the credentials necessary to access those services.

    Methods in javax.security.auth.kerberos with parameters of type Permission
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | DelegationPermission.`implies​(Permission p)` | Checks if this Kerberos delegation permission object "implies" the specified permission.
    `boolean` | ServicePermission.`implies​(Permission p)` | Checks if this Kerberos service permission object "implies" the specified permission.

  - ### Uses of Permission in javax.smartcardio

    Subclasses of Permission in javax.smartcardio
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `CardPermission` | A permission for Smart Card operations.

    Methods in javax.smartcardio with parameters of type Permission
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | CardPermission.`implies​(Permission permission)` | Checks if this CardPermission object implies the specified permission.

  - ### Uses of Permission in javax.sound.sampled

    Subclasses of Permission in javax.sound.sampled
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AudioPermission` | The `AudioPermission` class represents access rights to the audio system resources.

  - ### Uses of Permission in jdk.jfr

    Subclasses of Permission in jdk.jfr
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `FlightRecorderPermission` | Permission for controlling access to Flight Recorder.

  - ### Uses of Permission in jdk.net

    Subclasses of Permission in jdk.net
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `NetworkPermission` | Represents permission to access the extended networking capabilities defined in the jdk.net package.