# Class MBeanServerPermission

java.lang.Object
java.security.Permission
java.security.BasicPermission
javax.management.MBeanServerPermission

All Implemented Interfaces:
  `Serializable, Guard`

@Deprecated(since="25", forRemoval=true) public class MBeanServerPermission extends BasicPermission
Deprecated, for removal: This API element is subject to removal in a future version.
This class was only useful in conjunction with the Security Manager, which is no longer supported. There is no replacement for this class.
A Permission to perform actions related to MBeanServers. The name of the permission specifies the operation requested or granted by the permission. For a granted permission, it can be `*` to allow all of the MBeanServer operations specified below. Otherwise, for a granted or requested permission, it must be one of the following:

createMBeanServer
  Create a new MBeanServer object using the method `MBeanServerFactory.createMBeanServer()` or `MBeanServerFactory.createMBeanServer(java.lang.String)`.
findMBeanServer
  Find an MBeanServer with a given name, or all MBeanServers in this JVM, using the method `MBeanServerFactory.findMBeanServer(String)`.
newMBeanServer
  Create a new MBeanServer object without keeping a reference to it, using the method `MBeanServerFactory.newMBeanServer()` or `MBeanServerFactory.newMBeanServer(java.lang.String)`.
releaseMBeanServer
  Remove the MBeanServerFactory's reference to an MBeanServer, using the method `MBeanServerFactory.releaseMBeanServer(MBeanServer)`.

The name of the permission can also denote a list of one or more comma-separated operations. Spaces are allowed at the beginning and end of the name and before and after commas.

`MBeanServerPermission("createMBeanServer")` implies `MBeanServerPermission("newMBeanServer")`.

API Note:
  This permission cannot be used for controlling access to resources as the Security Manager is no longer supported. Consequently this class is deprecated for removal in a future release.
Since:
  1.5
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MBeanServerPermission(String name)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Create a new MBeanServerPermission with the given name.
  `MBeanServerPermission(String name, String actions)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Create a new MBeanServerPermission with the given name.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Checks two MBeanServerPermission objects for equality.
  `boolean`
  `implies(Permission p)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Checks if this MBeanServerPermission object "implies" the specified permission.

  ### Methods declared in class BasicPermission

  `getActions, hashCode, newPermissionCollection`
  Modifier and Type
  Method
  Description
  `String`
  `getActions()`
  Returns the canonical string representation of the actions, which currently is the empty string "", since there are no actions for a `BasicPermission`.
  `int`
  `hashCode()`
  Returns the hash code value for this object.
  `PermissionCollection`
  `newPermissionCollection()`
  Returns a new `PermissionCollection` object for storing `BasicPermission` objects.

  ### Methods declared in class Permission

  `checkGuard, getName, toString`
  Modifier and Type
  Method
  Description
  `void`
  `checkGuard(Object object)`
  Implements the guard interface for a permission.
  `final String`
  `getName()`
  Returns the name of this `Permission`.
  `String`
  `toString()`
  Returns a string describing this `Permission`.

  ### Methods declared in class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### MBeanServerPermission

    public MBeanServerPermission(String name)
    Deprecated, for removal: This API element is subject to removal in a future version.

    Create a new MBeanServerPermission with the given name.

    This constructor is equivalent to `MBeanServerPermission(name,null)`.

    Parameters:
      `name` - the name of the granted permission. It must respect the constraints spelt out in the description of the `MBeanServerPermission` class.
    Throws:
      `NullPointerException` - if the name is null.
      `IllegalArgumentException` - if the name is not `*` or one of the allowed names or a comma-separated list of the allowed names.

  - ### MBeanServerPermission

    public MBeanServerPermission(String name, String actions)
    Deprecated, for removal: This API element is subject to removal in a future version.

    Create a new MBeanServerPermission with the given name.

    Parameters:
      `name` - the name of the granted permission. It must respect the constraints spelt out in the description of the `MBeanServerPermission` class.
      `actions` - the associated actions. This parameter is not currently used and must be null or the empty string.
    Throws:
      `NullPointerException` - if the name is null.
      `IllegalArgumentException` - if the name is not `*` or one of the allowed names or a comma-separated list of the allowed names, or if `actions` is a non-null non-empty string.
      `NullPointerException` - if `name` is `null`.
      `IllegalArgumentException` - if `name` is empty or if arguments are invalid.

- ## Method Details

  - ### implies

    public boolean implies(Permission p)
    Deprecated, for removal: This API element is subject to removal in a future version.

    Checks if this MBeanServerPermission object "implies" the specified permission.

    More specifically, this method returns true if:

    - p is an instance of MBeanServerPermission,
    - p's target names are a subset of this object's target names

    The `createMBeanServer` permission implies the `newMBeanServer` permission.

    Overrides:
      `implies` in class `BasicPermission`
    Parameters:
      `p` - the permission to check against.
    Returns:
      true if the specified permission is implied by this object, false if not.

  - ### equals

    public boolean equals(Object obj)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Checks two MBeanServerPermission objects for equality. Checks that obj is an MBeanServerPermission, and represents the same list of allowable actions as this object.
    Overrides:
      `equals` in class `BasicPermission`
    Parameters:
      `obj` - the object we are testing for equality with this object.
    Returns:
      true if the objects are equal.
    See Also:
      - `Object.hashCode()`
      - `HashMap`