- java.lang.Object
-
- java.security.Permission
-
- javax.management.MBeanPermission
-
- All Implemented Interfaces:
-
Serializable,Guard
public class MBeanPermission extends Permission
控制访问MBeanServer操作的权限。 如果使用
System.setSecurityManager(java.lang.SecurityManager)设置了安全管理器,则MBean服务器上的大多数操作都要求调用者的权限意味着MBeanPermission适用于该操作。 这在MBeanServer界面的文档中有详细描述。与其他
Permission对象一样,MBeanPermission可以表示您拥有的权限或您需要的权限。 当敏感操作被检查许可时,构造一个MBeanPermission表示您需要的权限。 只有您拥有imply权限的权限,才允许操作。MBeanPermission包含四个信息项:
行动 。 对于您需要的权限,这是列表below中的操作之一。 对于您拥有的许可,这是这些操作的逗号分隔列表,或
*,表示所有操作。该操作由
getActions()返回。班级名称
对于您需要的权限,这是您正在访问的MBean的类名,由
MBeanServer.getMBeanInfo(name)返回。getClassName()。 某些操作不引用类名,在这种情况下,类名为null。对于您拥有的权限,这是空的或类名称模式 。 类名称模式是符合点分隔类名称的Java约定的字符串。 它可能以“
.*”结尾,这意味着权限允许访问以“.*”之前的字符串开头的任何类。 例如,“javax.management.*”授权访问javax.management.MBeanServerDelegate和javax.management.timer.Timer以及其他类。类名称模式也可以是空的,也可以是单个字符“
*”,两者都授予对任何类的访问权限。会员
对于您需要的权限,这是您正在访问的属性或操作的名称。 对于不引用属性或操作的操作,成员为空。
对于您拥有的权限,这是您可以访问的属性或操作的名称,或者是空的或单个字符“
*”,两者都授予对任何成员的访问权限。对象名称 。
对于您需要的权限,这是您正在访问的MBean的
ObjectName。 对于不引用单个MBean的操作,它为null。 它从来不是一个对象名称模式。对于您拥有的权限,这是您可以访问的MBean或MBean的
ObjectName。 它可以是一个对象名称模式,用于授予对名称与模式匹配的所有MBean的访问权限。 它也可以是空的,它允许访问所有MBeans,无论他们的名字。
如果您有一个MBeanPermission,只有当所有四个项目匹配时才允许操作。
类名,成员和对象名称可以一起写成单个字符串,这是该权限的名称 。 权限的名称是由
getName()返回的字符串。 字符串的格式是:className#member[objectName]对象名称使用
ObjectName的通常语法编写 。 它可能包含任何合法字符,包括]。 它由字符串中最后一个字符的]字符终止。一个或多个所述的
className,member,或objectName可以省略。 如果member被省略,那么#可能也是(但不一定要)。 如果objectName被省略,那么[]可能也是(但不一定要)。 省略所有三个项目是不合法的,即一个名称是空字符串。一个或多个所述的
className,member,或objectName可以是字符“-”,其等同于一个空值。 任何值(包括另一个空值)都暗示空值,但不表示任何其他值。The possible actions are these:
- 是addNotificationListener
- 的getAttribute
- getClassLoader
- getClassLoaderFor
- getClassLoaderRepository
- getDomains
- getMBeanInfo方法
- getObjectInstance
- 实例
- 调用
- isInstanceOf
- queryMBeans
- queryNames
- registerMBean
- 中的removeNotificationListener
- 的setAttribute
- unregisterMBean
在逗号分隔的动作列表中,每个动作之前和之后都允许使用空格。
- 从以下版本开始:
- 1.5
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 MBeanPermission(String name, String actions)使用指定的目标名称和操作创建一个新的MBeanPermission对象。MBeanPermission(String className, String member, ObjectName objectName, String actions)使用指定的目标名称(类名,成员,对象名称)和操作创建新的MBeanPermission对象。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 booleanequals(Object obj)检查两个MBeanPermission对象是否相等。StringgetActions()返回动作的“规范字符串表示”。inthashCode()返回此对象的哈希码值。booleanimplies(Permission p)检查这个MBeanPermission对象是否“暗示”指定的权限。-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from class java.security.Permission
checkGuard, getName, newPermissionCollection, toString
-
-
-
-
构造方法详细信息
-
MBeanPermission
public MBeanPermission(String name, String actions)
使用指定的目标名称和操作创建一个新的MBeanPermission对象。
目标名称的格式为“
className#member[objectName]”,其中每个部分都是可选的。 它不能为空或为空。actions参数包含在目标名称上授予的所需操作的逗号分隔列表。 它不能为空或为空。
- 参数
-
name- 三元组“className#member [objectName]”。 -
actions- 操作字符串。 - 异常
-
IllegalArgumentException- 如果name或actions无效。
-
MBeanPermission
public MBeanPermission(String className, String member, ObjectName objectName, String actions)
使用指定的目标名称(类名,成员,对象名称)和操作创建新的MBeanPermission对象。
类名,成员和对象名称参数定义了一个表单“
className#member[objectName]”的目标名称,其中每个部分都是可选的。 这将是结果MBeanPermission上的Permission.getName()的结果。actions参数包含在目标名称上授予的所需操作的逗号分隔列表。 它不能为空或为空。
- 参数
-
className- 此权限适用的类名称。 可能为null或"-",它表示任何类名称隐含但不暗示任何其他类名称的类名称。 -
member- 此权限适用的成员。 可以为null或"-",其代表任何成员暗示但不暗示任何其他成员的成员。 -
objectName- 此权限适用的对象名称。 可能为null,表示任何对象名称隐含但不暗示任何其他对象名称的对象名称。 -
actions- 动作字符串。
-
-
方法详细信息
-
getActions
public String getActions()
返回动作的“规范字符串表示”。 也就是说,此方法总是按字母顺序返回当前操作。- Specified by:
-
getActions在Permission - 结果
- 规范字符串表示的动作。
-
hashCode
public int hashCode()
返回此对象的哈希码值。- Specified by:
-
hashCode在Permission - 结果
- 该对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
implies
public boolean implies(Permission p)
检查这个MBeanPermission对象是否“暗示”指定的权限。
更具体地说,这个方法返回true:
- p是MBeanPermission的一个实例; 和
- p具有null className或p的className与此对象的className匹配; 和
- p具有null成员或p的成员匹配此对象的成员; 和
- p具有空对象名称或p的对象名称与此对象的对象名称相匹配; 和
- p的动作是这个对象的动作的一个子集
如果这个对象的className是“
*”, p的className总是匹配它。 如果是“a.*”, p的className与“a.”开头匹配。如果此对象的成员是“
*”, p的成员始终匹配它。如果此对象的objectName n1是对象名称模式,则p的objectName n2与
n1.equals(n2)匹配,如果为n1.apply(n2)。包括
queryMBeans操作的权限也被认为包括queryNames。- Specified by:
-
implies在Permission - 参数
-
p- 允许检查。 - 结果
- 如果此对象隐含指定的权限,则为true,否则为false。
-
equals
public boolean equals(Object obj)
检查两个MBeanPermission对象是否相等。 检查obj是否为MBeanPermission,并具有与此对象相同的名称和操作。- Specified by:
-
equals在Permission - 参数
-
obj- 我们正在测试与此对象相等的对象。 - 结果
- 如果obj是MBeanPermission,则为true,并且具有与此MBeanPermission对象相同的名称和操作。
- 另请参见:
-
Object.hashCode(),HashMap
-
-