public class MBeanPermission extends Permission
控制访问MBeanServer操作的权限。 如果使用System.setSecurityManager(java.lang.SecurityManager)设置了安全管理器,则MBean Server上的大多数操作都要求调用者的权限意味着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等。
类名称模式也可以是空的,也可以是单个字符“ * ”,两者都授予对任何类的访问权限。
会员
对于您需要的权限,这是您正在访问的属性或操作的名称。 对于不引用属性或操作的操作,成员为空。
对于您拥有的权限,这是您可以访问的属性或操作的名称,或者是空的或单个字符“ * ”,两者都授予对任何成员的访问权限。
对象名称 。
你需要一个许可,这是ObjectName您正在访问的MBean的。 对于不引用单个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:
在逗号分隔的动作列表中,每个动作之前和之后都允许使用空格。
| Constructor and Description |
|---|
MBeanPermission(String name, String actions)
使用指定的目标名称和操作创建一个新的MBeanPermission对象。
|
MBeanPermission(String className, String member, ObjectName objectName, String actions)
使用指定的目标名称(类名,成员,对象名称)和操作创建一个新的MBeanPermission对象。
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object obj)
检查两个MBeanPermission对象是否相等。
|
String |
getActions()
返回动作的“规范字符串表示”。
|
int |
hashCode()
返回此对象的哈希码值。
|
boolean |
implies(Permission p)
检查这个MBeanPermission对象是否“暗示”指定的权限。
|
checkGuard, getName, newPermissionCollection, toStringpublic MBeanPermission(String name, String actions)
使用指定的目标名称和操作创建一个新的MBeanPermission对象。
目标名称的格式为“ className#member[objectName] ”,其中每个部分都是可选的。 它不能为空或为空。
actions参数包含在目标名称上授予的所需操作的逗号分隔列表。 它不能为空或为空。
name - 三元组“className#member [objectName]”。
actions - 动作字符串。
IllegalArgumentException - 如果
name或
actions无效。
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 - 动作字符串。
public String getActions()
getActions在
Permission
public int hashCode()
hashCode在
Permission
Object.equals(java.lang.Object) ,
System.identityHashCode(java.lang.Object)
public boolean implies(Permission p)
检查这个MBeanPermission对象是否“暗示”指定的权限。
更具体地说,这个方法返回true:
如果此对象的className为“ * ”, p的className始终与之匹配。 如果是“ a.* ”, p的className与“ a. ”开头匹配。
如果此对象的成员是“ * ”, p的成员始终匹配它。
如果此对象的objectName n1是对象名称模式,则p的objectName n2与n1.equals(n2)匹配,如果为 n1.apply(n2) 。
包括queryMBeans操作的权限也被认为包括queryNames 。
implies在
Permission
p - 允许检查。
public boolean equals(Object obj)
equals在类别
Permission
obj - 我们正在测试与此对象相等的对象。
Object.hashCode() , HashMap
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.