- 所有已实现的接口:
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 对象是否相等。返回操作的“规范字符串表示”。inthashCode()返回此对象的哈希码值。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 对象相同的名称和操作,则为真。
- 参见:
-