|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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 包含四项信息:
操作。对于所需的权限,这是下面列表中的某种操作。对于所拥有的权限,则是这些操作的列表,各项以逗号分隔,或者是
*
,表示所有操作。通过
getActions()
返回操作。类名。
对于所需的权限,这是正在访问的 MBean 的类名,正如
MBeanServer.getMBeanInfo(name)
、getClassName()
所返回的一样。某些操作不引用类名,在这种情况下类名为 null。对于所拥有的权限,这是空或一个类名模式。类名模式是一个服从 Java 对点分类名约定的 string。该模式可以以 "
.*
" 结尾,意味着该权限允许对名称以 ".*
" 前面的字符串开始的类的访问。例如,"javax.management.*
" 允许对其他类中的javax.management.MBeanServerDelegate
和javax.management.timer.Timer
进行访问。类名模式也可以为空,或者只有单个字符 "
*
",这两种情况都允许对任何类的访问。成员。
对于所需的权限,这是正在访问的属性或操作名。对于没有引用属性或操作的操作,该成员为 null。
对于所拥有的权限,这要么是可以访问的属性或操作名,要么是空或单个字符 "
*
",后面这两种情况都允许对任意成员的访问。对象名。
对于所需的权限,这是正在访问的 MBean 的
ObjectName
。对于不引用单个 MBean 的操作而言,对象名为 null。它永远不会是对象名模式。对于所拥有的权限,这是可访问的 MBean 或 MBeans 的
ObjectName
。可以是一个对象名模式,以允许访问其名称匹配该模式的所有 MBean。还可以为空,这样可访问所有 MBean 而不管其名称是什么。
如果拥有 MBeanPermission,则它只允许这四项都匹配的操作。
可将类名、成员和对象名一同写入单个字符串,这就是此权限的名称。权限的名称是 getName()
所返回的字符串。该字符串的格式为:
className#member[objectName]
使用常规的 ObjectName
语法写对象名称。它可包含任意合法字符,包括 ]
。由字符串中最后一个 ]
字符终止该字符串。
可省略一个或多个 className
、member
或 objectName
。如果省略的 member
,则 #
也可省略(但并非必须如此)。如果省略 objectName
,则 []
也可省略(但并非必须如此)。省略所有三项是不合法的,也就是说只有一个空字符串的名称 是不合法的。
className
、member
或 objectName
中的一个或多个可以是字符 "-
",这等同于 null 值。任意值隐含 null 值(包括另一个 null 值),但是 null 值并不隐含任意其他值。
- addNotificationListener
- getAttribute
- getClassLoader
- getClassLoaderFor
- getClassLoaderRepository
- getDomains
- getMBeanInfo
- getObjectInstance
- instantiate
- invoke
- isInstanceOf
- queryMBeans
- queryNames
- registerMBean
- removeNotificationListener
- setAttribute
- unregisterMBean
在逗号分隔的操作列表中,每个操作的前后允许有空格。
- 从以下版本开始:
- 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
- 如果name
或actions
无效。
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:
- p 是 MBeanPermission 的一个实例;并且
- p 具有 null className 或者 p 的 className 与此对象的 className 相符;并且
- p 具有 null 成员或者 p 的成员与此对象的成员相符;并且
- p 具有 null 对象名或者 p 的对象名与此对象的 对象名相符;并且
- p 的动作是此对象的动作的一个子集
如果此对象的 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
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |