Spec-Zone.ru › OpenJDK 8

Класс 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.

    Для имеющегося разрешения это либо имя атрибута или операции, к которому вы можете получить доступ, либо пустая строка, либо единственный символ "*", оба варианта предоставляют доступ ко всем членам.

  • Имя объекта.

    Для необходимого разрешения это ObjectName MBean, к которому вы обращаетесь. Для операций, которые не ссылаются на отдельный MBean, оно равно null. Это никогда не является шаблоном имени объекта.

    Для имеющегося разрешения это ObjectName MBean или 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 - имя класса, к которому применяется это разрешение. Может быть нулевым или "-", что представляет имя класса, подразумеваемое любым именем класса, но не подразумевающее других имён.
member - член, к которому применяется это разрешение. Может быть нулевым или "-", что представляет член, подразумеваемый любым членом, но не подразумевающий других членов.
objectName - имя объекта, к которому применяется это разрешение. Может быть нулевым, что представляет имя объекта, подразумеваемое любым именем объекта, но не подразумевающее других имён.
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 object name или object name p совпадает с object name этого объекта;
  • действия 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API