JavaTM Platform
Standard Ed. 6

javax.management
类 MBeanPermission

java.lang.Object
  继承者 java.security.Permission
      继承者 javax.management.MBeanPermission
所有已实现的接口:
Serializable, Guard

public class MBeanPermission
extends Permission

权限控制对 MBeanServer 操作的访问。如果已使用 System.setSecurityManager(java.lang.SecurityManager) 设置了安全管理器,则 MBeanServer 上的多数操作都需要调用者的权限隐含了适用于该操作的 MBeanPermission。MBeanServer 接口的文档中对此进行了详细描述。

与其他 Permission 对象一样,MBeanPermission 可以表示所拥有 的权限,或者是所需要 的权限。当检查某个敏感操作的权限时,会构造一个表示所需权限的 MBeanPermission。仅在所拥有的权限隐含所需的权限时才允许该操作。

MBeanPermission 包含四项信息:

如果拥有 MBeanPermission,则它只允许这四项都匹配的操作。

可将类名、成员和对象名一同写入单个字符串,这就是此权限的名称。权限的名称是 getName() 所返回的字符串。该字符串的格式为:

className#member[objectName]

使用常规的 ObjectName 语法写对象名称。它可包含任意合法字符,包括 ]。由字符串中最后一个 ] 字符终止该字符串。

可省略一个或多个 classNamememberobjectName。如果省略的 member,则 # 也可省略(但并非必须如此)。如果省略 objectName,则 [] 也可省略(但并非必须如此)。省略所有三项是不合法的,也就是说只有一个空字符串的名称 是不合法的。

classNamememberobjectName 中的一个或多个可以是字符 "-",这等同于 null 值。任意值隐含 null 值(包括另一个 null 值),但是 null 值并不隐含任意其他值。

可能的操作有:

在逗号分隔的操作列表中,每个操作的前后允许有空格。

从以下版本开始:
1.5
另请参见:
序列化表格

构造方法摘要
MBeanPermission(String name, String actions)
          创建具有指定目标名称和操作的新 MBeanPermission 对象。
MBeanPermission(String className, String member, ObjectName objectName, String actions)
          创建具有指定目标名称(类名、成员、对象名)和操作的 MBeanPermission 对象。
 
方法摘要
 boolean equals(Object obj)
          检查两个 MBeanPermission 对象的相等性。
 String getActions()
          返回操作的“规范化字符串表示形式”。
 int hashCode()
          返回此对象的哈希码值。
 boolean implies(Permission p)
          检查此 MBeanPermission 对象是否“隐含”指定的权限。
 
从类 java.security.Permission 继承的方法
checkGuard, getName, newPermissionCollection, toString
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

MBeanPermission

public MBeanPermission(String name,
                       String actions)

创建具有指定目标名称和操作的新 MBeanPermission 对象。

目标名称的形式为 "className#member[objectName]",其中每部分都是可选的。不可以为空或 null。

actions 参数包含在目标名称上所允许的所需操作列表,该列表用逗号分隔。不可以为空或 null。

参数:
name - 三部分的 "className#member[objectName]"。
actions - 操作字符串。
抛出:
IllegalArgumentException - 如果 nameactions 无效。

MBeanPermission

public MBeanPermission(String className,
                       String member,
                       ObjectName objectName,
                       String actions)

创建具有指定目标名称(类名、成员、对象名)和操作的 MBeanPermission 对象。

className、member、objectName 参数定义了 "className#member[objectName]" 形式的目标名称,其中每个部分都是可选的。这将是在结果 MBeanPermission 上调用 Permission.getName() 得到的结果。

actions 参数包含在目标名称上所允许的所需操作列表,该列表用逗号分隔。不可以为空或 null。

参数:
className - 应用此权限的类名。可以为 null 或 "-",这表示一个由任何类名所隐含的类名,但是并不隐含任意其他类名。
member - 应用此权限的成员。可以为 null 或 "-",这表示一个由任何成员所隐含的成员,但是并不隐含任意其他成员。
objectName - 应用此权限的对象名。可以为 null,这表示一个由任何对象名所隐含的对象名,但是并不隐含任意其他对象名。
actions - 操作字符串。
方法详细信息

getActions

public String getActions()
返回操作的“规范化字符串表示形式”。也就是说,此方法总是以字母顺序返回存在的操作:

指定者:
Permission 中的 getActions
返回:
操作的规范化字符串表示形式。

hashCode

public int hashCode()
返回此对象的哈希码值。

指定者:
Permission 中的 hashCode
返回:
此对象的哈希码值。
另请参见:
Object.equals(java.lang.Object), Hashtable

implies

public boolean implies(Permission p)

检查此 MBeanPermission 对象是否“隐含”指定的权限。

更明确地说,如果此方法满足以下条件,则返回 true:

如果此对象的 className 是 "*",则 p 的 className 始终与其相符。如果是 "a.*",则 p 的 className 与开头是 "a." 的 className 相符。

如果此对象的成员是 "*",则 p 的成员始终与其相符。

如果此对象的 objectName n1 是一个对象名模式,则在 n1.equals(n2) 或者 n1.apply(n2) 的情况下,p 的 objectName n2 与其相符。

将包括 queryMBeans 操作的权限视为还包括 queryNames

指定者:
Permission 中的 implies
参数:
p - 所要检查的权限。
返回:
如果此对象隐含指定的权限,则返回 true;否则返回 false。

equals

public boolean equals(Object obj)
检查两个 MBeanPermission 对象的相等性。检查 obj 是否为一个 MBeanPermission,并且检查是否和此对象具有相同的名称和操作。

指定者:
Permission 中的 equals
参数:
obj - 要与此对象进行相等性测试的对象。
返回:
如果 obj 是一个 MBeanPermission,并且与此 MBeanPermission 对象具有相同的名称和操作,则返回 true。
另请参见:
Object.hashCode(), Hashtable

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策