javax.management

Class MBeanServerPermission

Implemented Interfaces:
Guard, Serializable

public class MBeanServerPermission
extends BasicPermission

Represents the permissions required to perform operations provided by the MBeanServerFactory. As with all Permission objects, an instance of this class either represents a permission already held or one that is required to access a particular service. In the case of MBeanServerPermissions, implication checks are made using an instance of this class when a user requests an operation from the factory, and a SecurityManager is in place.

The permission is defined by its name, which may be either a '*' (to allow all) or one or more of the following, separated by a ',':

The names may be surrounded by arbitrary amounts of whitespace. createMBeanServer implies newMBeanServer.

Since:
1.5
See Also:
Serialized Form

Constructor Summary

MBeanServerPermission(String name)
Constructs a new MBeanServerPermission with the given name.
MBeanServerPermission(String name, String actions)
Constructs a new MBeanServerPermission with the given name and actions.

Method Summary

boolean
equals(Object obj)
Returns true if the given object is also an MBeanServerPermission with the same name.
int
hashCode()
Returns a unique hash code for this permission.
boolean
implies(Permission p)
Returns true if this MBeanServerPermission implies the given permission.
PermissionCollection
newPermissionCollection()
Returns a PermissionCollection which stores a series of MBeanServerPermissions as the union of their capabilities.

Methods inherited from class java.security.BasicPermission

equals, getActions, hashCode, implies, newPermissionCollection

Methods inherited from class java.security.Permission

checkGuard, equals, getActions, getName, hashCode, implies, newPermissionCollection, toString

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

MBeanServerPermission

public MBeanServerPermission(String name)
Constructs a new MBeanServerPermission with the given name. The name must not be null and must be equal to either "*" or a comma-separated list of valid permissions. The four valid constraints are:
  1. createMBeanServer
  2. findMBeanServer
  3. newMBeanServer
  4. releaseMBeanServer

Calling this constructor is equivalent to calling MBeanPermission(name, null).

Parameters:
name - the name of this permission.
Throws:
NullPointerException - if name is null.
IllegalArgumentException - if name is not either equal to "*" or forms a comma-separated list of valid constraints.

MBeanServerPermission

public MBeanServerPermission(String name,
                             String actions)
Constructs a new MBeanServerPermission with the given name and actions. The actions are unused, and must be either null or the empty string. The name must not be null and must be equal to either "*" or a comma-separated list of valid permissions. The four valid constraints are:
  1. createMBeanServer
  2. findMBeanServer
  3. newMBeanServer
  4. releaseMBeanServer

Calling this constructor is equivalent to calling MBeanPermission(name, null).

Parameters:
name - the name of this permission.
Throws:
NullPointerException - if name is null.
IllegalArgumentException - if name is not either equal to "*" or forms a comma-separated list of valid constraints, or if actions is not null or the empty string.

Method Details

equals

public boolean equals(Object obj)
Returns true if the given object is also an MBeanServerPermission with the same name.
Overrides:
equals in interface BasicPermission
Parameters:
obj - the object to compare with this one.
Returns:
true if the object is an MBeanPermission with the same name.

hashCode

public int hashCode()
Returns a unique hash code for this permission. This is simply the hashcode of BasicPermission.getName().
Overrides:
hashCode in interface BasicPermission
Returns:
the hashcode of this permission.

implies

public boolean implies(Permission p)
Returns true if this MBeanServerPermission implies the given permission. This occurs if the given permission is also an MBeanServerPermission and its target names are a subset of the target names of this permission. Note that the name createMBeanServer implies newMBeanServer.
Overrides:
implies in interface BasicPermission
Parameters:
p - the permission to check for implication.
Returns:
true if this permission implies p.

newPermissionCollection

public PermissionCollection newPermissionCollection()
Returns a PermissionCollection which stores a series of MBeanServerPermissions as the union of their capabilities.
Overrides:
newPermissionCollection in interface BasicPermission
Returns:
a collection for MBeanServerPermissions.

MBeanServerPermission.java -- Permissions controlling server creation. Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.