- 所有已实现的接口:
Serializable
,Guard
权限控制对 MBeanServer 操作的访问。如果使用 System.setSecurityManager(java.lang.SecurityManager)
设置了安全管理器,则 MBean Server 上的大多数操作都要求调用者的权限隐含适合该操作的 MBeanPermission。 MBeanServer
接口的文档中对此进行了详细描述。
与其他 Permission
对象一样,MBeanPermission 可以表示您 have 的权限或您 need 的权限。在检查敏感操作的权限时,会构造一个 MBeanPermission 来表示您需要的权限。仅当您拥有的权限imply您需要的权限时才允许该操作。
MBeanPermission 包含四项信息:
action。对于您需要的权限,这是列表 以下 中的操作之一。对于您拥有的权限,这是这些操作的逗号分隔列表,或
*
,代表所有操作。该操作由
getActions()
返回。class name。
对于您需要的权限,这是您正在访问的 MBean 的类名,由
MBeanServer.getMBeanInfo(name)
.getClassName()
返回。某些操作不引用类名,在这种情况下类名是空的。对于您拥有的权限,这是空的或 class name pattern 。类名模式是遵循 Java 点分隔类名约定的字符串。它可能以“
.*
”结尾,这意味着该权限授予对以“.*
”之前的字符串开头的任何类的访问权限。例如,“javax.management.*
”授予对javax.management.MBeanServerDelegate
和javax.management.timer.Timer
以及其他类的访问权限。类名模式也可以为空或单个字符“
*
”,这两者都授予对任何类的访问权限。member。
对于您需要的权限,这是您正在访问的属性或操作的名称。对于不引用属性或操作的操作,该成员为空。
对于您拥有的权限,这可以是您可以访问的属性或操作的名称,或者它是空的或单个字符“
*
”,这两者都向任何成员授予访问权限。object name。
对于您需要的权限,这是您正在访问的 MBean 的
ObjectName
。对于不引用单个 MBean 的操作,它为空。它绝不是对象名称模式。对于您拥有的权限,这是您可以访问的一个或多个 MBean 的
ObjectName
。它可以是一个对象名称模式,以授予对名称与该模式匹配的所有 MBean 的访问权限。它也可以是空的,它授予对所有 MBean 的访问权限,无论它们的名称是什么。
如果您有 MBeanPermission,它仅在所有四个项目都匹配时才允许操作。
类名、成员、对象名可以写成一个字符串,就是这个权限的name。权限的名称是 getName()
返回的字符串。字符串的格式是:
className#member[objectName]
对象名称是使用 ObjectName
的常用语法编写的。它可能包含任何合法字符,包括 ]
。它以 ]
字符结束,该字符是字符串中的最后一个字符。
className
、member
或 objectName
中的一个或多个可以省略。如果 member
被省略,则 #
可能也是(但不一定)。如果 objectName
被省略,则 []
也可能被省略(但不一定是)。省略所有这三个项目是不合法的,也就是说,有一个空字符串 name。
className
、 member
或 objectName
中的一个或多个可能是字符“-
”,相当于空值。任何值(包括另一个空值)都隐含空值,但不隐含任何其他值。
- addNotificationListener
- getAttribute
- getClassLoader
- getClassLoaderFor
- getClassLoaderRepository
- getDomains
- getMBeanInfo
- getObjectInstance
- 实例化
- invoke
- isInstanceOf
- queryMBeans
- queryNames
- 注册MBean
- removeNotificationListener
- setAttribute
- unregisterMBean
在以逗号分隔的操作列表中,每个操作前后允许有空格。
- 自从:
- 1.5
- 参见:
-
构造方法总结
构造方法构造方法描述MBeanPermission
(String name, String actions) 使用指定的目标名称和操作创建一个新的 MBeanPermission 对象。MBeanPermission
(String className, String member, ObjectName objectName, String actions) 使用指定的目标名称(类名、成员、对象名)和操作创建一个新的 MBeanPermission 对象。 -
方法总结
修饰符和类型方法描述boolean
检查两个 MBeanPermission 对象是否相等。返回操作的“规范字符串表示”。int
hashCode()
返回此对象的哈希码值。boolean
检查此 MBeanPermission 对象是否“暗示”了指定的权限。在类 java.security.Permission 中声明的方法
checkGuard, getName, newPermissionCollection, toString
-
构造方法详细信息
-
MBeanPermission
使用指定的目标名称和操作创建一个新的 MBeanPermission 对象。
目标名称的格式为“
className#member[objectName]
”,其中每个部分都是可选的。它不能为空或 null。actions 参数包含对目标名称授予的所需操作的逗号分隔列表。它不能为空或 null。
- 参数:
name
- 三元组“className#member[objectName]”。actions
- 动作字符串。- 抛出:
IllegalArgumentException
- 如果name
或actions
无效。
-
MBeanPermission
使用指定的目标名称(类名、成员、对象名)和操作创建一个新的 MBeanPermission 对象。
类名、成员和对象名参数定义了“
className#member[objectName]
”形式的目标名称,其中每个部分都是可选的。这将是Permission.getName()
对生成的 MBeanPermission 的结果。actions 参数包含对目标名称授予的所需操作的逗号分隔列表。它不能为空或 null。
- 参数:
className
- 此权限适用的类名。可以为 null 或"-"
,表示由任何类名暗示但不暗示任何其他类名的类名。member
- 此权限适用的成员。可以为 null 或"-"
,表示由任何成员暗示但不暗示任何其他成员的成员。objectName
- 此权限适用的对象名称。可以为null,表示一个对象名,它被任何对象名隐含但不隐含任何其他对象名。actions
- 动作字符串。
-
-
方法详情
-
getActions
返回操作的“规范字符串表示”。也就是说,此方法始终按字母顺序返回当前操作。- 指定者:
getActions
在类Permission
中- 返回:
- 动作的规范字符串表示。
-
hashCode
public int hashCode()返回此对象的哈希码值。- 指定者:
hashCode
在类Permission
中- 返回:
- 此对象的哈希码值。
- 参见:
-
implies
检查此 MBeanPermission 对象是否“暗示”了指定的权限。
更具体地说,如果出现以下情况,此方法将返回 true:
- p是 MBeanPermission 的实例;和
- p有一个空类名或p的类名与此对象的类名匹配;和
- p有一个空成员或p的成员匹配此对象的成员;和
- p具有空对象名称或p的对象名称与此对象的对象名称匹配;和
- p的动作是该对象动作的子集
如果这个对象的类名是“
*
”,p的类名总是匹配它。如果是“a.*
”,p如果它以“a.
”开头,则它的类名匹配它。如果这个对象的成员是“
*
”,p的成员总是匹配它。如果这个对象的 objectNamen1是一个对象名称模式,p的对象名称n2如果
n1.equals(n2)
或n1.apply(n2)
匹配它。包含
queryMBeans
操作的权限也被视为包含queryNames
。- 指定者:
implies
在类Permission
中- 参数:
p
- 检查的权限。- 返回:
- 如果此对象隐含了指定的权限,则为 true,否则为 false。
-
equals
检查两个 MBeanPermission 对象是否相等。检查那个对象是一个 MBeanPermission,并且与此对象具有相同的名称和操作。- 指定者:
equals
在类Permission
中- 参数:
obj
- 我们正在测试与此对象是否相等的对象。- 返回:
- 如果 obj 是一个 MBeanPermission,并且具有与此 MBeanPermission 对象相同的名称和操作,则为真。
- 参见:
-