Класс MBeanPermission
- 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, представляющий необходимое разрешение. Операция разрешается только если имеющиеся у вас разрешения подразумевают необходимое разрешение.
MBeanPermission содержит четыре элемента информации:
-
Действие. Для необходимого разрешения это одно из действий в списке ниже. Для имеющегося разрешения это список этих действий, разделённых запятыми, или
*, представляющее все действия.Действие возвращается методом
getActions(). -
Имя класса.
Для необходимого разрешения это имя класса MBean, к которому вы обращаетесь, возвращаемое методом
MBeanServer.getMBeanInfo(name).getClassName(). Некоторые операции не ссылаются на имя класса, в таком случае имя класса равно null.Для имеющегося разрешения это либо пустая строка, либо шаблон имени класса. Шаблон имени класса — это строка, соответствующая соглашениям Java для имён классов, разделённых точками. Он может оканчиваться на "
.*", что означает, что разрешение предоставляет доступ к любому классу, начинающемуся со строки, предшествующей ".*". Например, "javax.management.*" предоставляет доступ кjavax.management.MBeanServerDelegateиjavax.management.timer.Timer, среди других классов.Шаблон имени класса также может быть пустым или содержать единственный символ "
*", оба варианта предоставляют доступ ко всем классам. -
Член.
Для необходимого разрешения это имя атрибута или операции, к которому вы обращаетесь. Для операций, не ссылающихся на атрибут или операцию, член равен null.
Для имеющегося разрешения это либо имя атрибута или операции, к которым вы можете получить доступ, либо пустая строка или единственный символ "
*", оба варианта предоставляют доступ ко всем членам. -
Имя объекта.
Для необходимого разрешения это
ObjectNameMBean, к которому вы обращаетесь. Для операций, не ссылающихся на отдельный MBean, оно равно null. Это никогда не является шаблоном имени объекта.Для имеющегося разрешения это
ObjectNameMBean или MBeans, к которым вы можете получить доступ. Это может быть шаблон имени объекта, предоставляющий доступ ко всем MBean, чьи имена соответствуют шаблону. Также может быть пустым, что предоставляет доступ ко всем MBean независимо от их имени.
Если у вас есть MBeanPermission, оно разрешает операции только если все четыре элемента совпадают.
Имя класса, член и имя объекта могут быть объединены в одну строку, являющуюся именем данного разрешения. Имя разрешения — это строка, возвращаемая методом getName(). Формат строки:
className#member[objectName]
Имя объекта записывается с использованием обычного синтаксиса для ObjectName. Оно может содержать любые допустимые символы, включая ]. Оно завершается символом ].
Один или несколько из className, member, или objectName могут быть опущены. Если опущен member, то # тоже может быть опущен (но не обязательно). Если опущен objectName, то [] тоже может быть опущен (но не обязательно). Недопустимо опустить все три элемента, то есть иметь имя, равное пустой строке.
Один или несколько из className, member, или objectName могут быть символом "-", что эквивалентно значению 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]", где каждая часть необязательна. Оно не должно быть пустым или нулевым.
Параметр actions содержит список действий, разделённых запятыми, разрешённых для целевого имени. Он не должен быть пустым или нулевым.
- Параметры:
-
name- тройка "className#member[objectName]". -
actions- строка действия. - Исключения:
-
IllegalArgumentException- еслиnameилиactionsнекорректны.
MBeanPermission
public MBeanPermission(String className,
String member,
ObjectName objectName,
String actions) Создаёт новый объект MBeanPermission с указанным целевым именем (имя класса, член, имя объекта) и действиями.
Параметры имени класса, члена и имени объекта определяют целевое имя вида "className#member[objectName]", где каждая часть необязательна. Это будет результатом Permission.getName() для созданного объекта MBeanPermission.
Параметр actions содержит список действий, разделённых запятыми, разрешённых для целевого имени. Он не должен быть пустым или нулевым.
- Параметры:
-
className- имя класса, к которому применяется разрешение. Может быть null или"-", что представляет имя класса, подразумеваемое любым именем класса, но не подразумевает других имён классов. -
member- член, к которому применяется разрешение. Может быть null или"-", что представляет член, подразумеваемый любым членом, но не подразумевает других членов. -
objectName- имя объекта, к которому применяется разрешение. Может быть null, что представляет имя объекта, подразумеваемое любым именем объекта, но не подразумевает других имён объектов. -
actions- строка действия.
Методы
getActions
public String getActions()
Возвращает "каноническое строковое представление" действий. То есть этот метод всегда возвращает присутствующие действия в алфавитном порядке.
- Определено в:
-
getActionsв классеPermission - Возвращает:
- каноническое строковое представление действий.
hashCode
public int hashCode()
Возвращает хэш-код для этого объекта.
- Определено в:
-
hashCodeв классеPermission - Возвращает:
- значение хэш-кода для этого объекта.
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
implies
public boolean implies(Permission p)
Проверяет, "подразумевает" ли этот объект MBeanPermission указанное разрешение.
Более конкретно, этот метод возвращает true, если:
- p является экземпляром MBeanPermission;
- p имеет null className или className p совпадает с className этого объекта;
- p имеет null member или member p совпадает с member этого объекта;
- p имеет null objectName или objectName p совпадает с objectName этого объекта;
- действия p являются подмножеством действий этого объекта.
Если className этого объекта равен "*", className p всегда совпадает с ним. Если это "a.*", className p совпадает с ним, если начинается с "a.".
Если member этого объекта равен "*", member p всегда совпадает с ним.
Если objectName этого объекта n1 является образцом имени объекта, objectName n2 p совпадает с ним, если n1.equals(n2) или если n1.apply(n2).
Разрешение, включающее действие queryMBeans, считается включающим queryNames тоже.
- Определено в:
-
impliesв классеPermission - Параметры:
-
p- разрешение для проверки. - Возвращает:
- true, если указанное разрешение подразумевается этим объектом, false — если нет.
equals
public boolean equals(Object obj)
Сравнивает два объекта MBeanPermission на равенство. Проверяет, что obj является MBeanPermission и имеет то же имя и те же действия, что и этот объект.
- Определено в:
-
equalsв классеPermission - Параметры:
-
obj- объект, с которым проверяется равенство. - Возвращает:
- true, если obj является MBeanPermission и имеет то же имя и те же действия, что и этот объект MBeanPermission.
- См. также:
-
Object.hashCode(),HashMap
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.management/javax/management/MBeanPermission.html