Module java.management
Package javax.management

# Class MBeanServerPermission

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

All Implemented Interfaces:
  `Serializable`, `Guard`

public class MBeanServerPermission extends BasicPermission
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(java.lang.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(javax.management.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")`.

Since:
  1.5
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MBeanServerPermission(String name)`
  Create a new MBeanServerPermission with the given name.
  `MBeanServerPermission(String name, String actions)`
  Create a new MBeanServerPermission with the given name.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  Checks two MBeanServerPermission objects for equality.
  `boolean`
  `implies(Permission p)`
  Checks if this MBeanServerPermission object "implies" the specified permission.

  ### Methods declared in class java.security.BasicPermission

  `getActions, hashCode, newPermissionCollection`

  ### Methods declared in class java.security.Permission

  `checkGuard, getName, toString`

  ### Methods declared in class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### MBeanServerPermission

    public MBeanServerPermission(String name)

    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)

    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)

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