- java.lang.Object
-
- java.security.Permission
-
- javax.management.MBeanPermission
-
- 实现的所有接口
-
Serializable
,Guard
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
以及其他类别的权限。类名模式也可以为空或单个字符“
*
”,两者都授予对任何类的访问权限。会员 。
对于您需要的权限,这是您正在访问的属性或操作的名称。 对于不引用属性或操作的操作,该成员为null。
对于您拥有的权限,这可以是您可以访问的属性或操作的名称,也可以是空的或单个字符“
*
”,这两个字符都授予对任何成员的访问权限。对象名称 。
对于您需要的权限,这是您正在访问的MBean的
ObjectName
。 对于不引用单个MBean的操作,它为null。 它永远不是对象名称模式。对于您拥有的权限,这是您可以访问的MBean或MBean的
ObjectName
。 它可能是一个对象名称模式,用于授予对名称与模式匹配的所有MBean的访问权限。 它也可能是空的,无论其名称如何,都可以访问所有MBean。
如果您有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
-
-
构造方法摘要
构造方法 构造器 描述 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
-
-
-
-
构造方法详细信息
-
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对象是否“隐含”指定的权限。
更具体地说,如果满足以下条件,则此方
- 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
-
-