Класс ServicePermission
- java.lang.Object
-
- java.security.Permission
-
- javax.security.auth.kerberos.ServicePermission
- Все реализованные интерфейсы:
-
Serializable,Guard
public final class ServicePermission extends Permission implements Serializable
Этот класс используется для защиты служб Kerberos и данных, необходимых для доступа к этим службам. Существует взаимно однозначное соответствие между принципалом службы и данными, необходимыми для доступа к службе. Поэтому предоставление доступа к принципалу службы подразумевает предоставление доступа к данным, необходимым для создания контекста безопасности со службой-принципалом. Это относится независимо от того, хранятся ли данные в кэше или получены посредством обмена с KDC. Данные могут быть билетом предоставления билетов, билетом службы или секретным ключом из таблицы ключей.
ServicePermission содержит имя принципала службы и список действий, которые определяют контекст, в котором данные могут использоваться.
Имя принципала службы — это каноническое имя KerberosPrincipal , предоставляющего услугу, то есть KerberosPrincipal представляет собой принципал службы Kerberos. Это имя обрабатывается с учётом регистра. Звёздочка может встречаться сама по себе, чтобы обозначить любой принципал службы.
Предоставление этого разрешения подразумевает, что вызывающая сторона может использовать кэшированные данные (TGT, билет службы или секретный ключ) в контексте, обозначенном действием. В случае с TGT предоставление этого разрешения также подразумевает, что TGT может быть получен посредством обмена с службой аутентификации.
Предоставление этого разрешения также подразумевает создание KerberosPrincipal или GSSName без предоставления области Kerberos, если принципал службы в этом разрешении находится в этой области.
Возможные действия:
initiate - allow the caller to use the credential to
initiate a security context with a service
principal.
accept - allow the caller to use the credential to
accept security context as a particular
principal. Например, для указания разрешения на доступ к TGT для начала контекста безопасности разрешение конструируется следующим образом: ServicePermission("krbtgt/EXAMPLE.COM@EXAMPLE.COM", "initiate");
Для получения билета службы для начала контекста со службой "host" разрешение конструируется следующим образом:
ServicePermission("host/foo.example.com@EXAMPLE.COM", "initiate");
Для сервера Kerberos действие — "accept". Например, разрешение, необходимое для доступа и использования секретного ключа Kerberos-сервиса "host" (telnet и подобных), конструируется следующим образом:
ServicePermission("host/foo.example.com@EXAMPLE.COM", "accept");
- С:
- 1.4
- См. также:
- Сериализованная форма
Конструкторы
| Конструктор | Описание |
|---|---|
ServicePermission(String servicePrincipal,
String action) |
Создаёт новый |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals(Object obj) |
Проверяет два объекта ServicePermission на равенство. |
String |
getActions() |
Возвращает каноническое строковое представление действий. |
int |
hashCode() |
Возвращает значение хэш-кода для данного объекта. |
boolean |
implies(Permission p) |
Проверяет, "подразумевает" ли данный объект разрешения службы Kerberos указанное разрешение. |
PermissionCollection |
newPermissionCollection() |
Возвращает объект PermissionCollection для хранения объектов ServicePermission. |
Методы, объявленные в классе java.security.Permission
checkGuard, getName, toString
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Конструкторы
ServicePermission
public ServicePermission(String servicePrincipal,
String action)
Создаёт новый ServicePermission со специфицированным servicePrincipal и action.
- Параметры:
-
servicePrincipal— имя принципала службы. Звёздочка может встречаться сама по себе, чтобы обозначить любой принципал службы. -
action— строка действия
Методы
implies
public boolean implies(Permission p)
Проверяет, "подразумевает" ли данный объект разрешения службы Kerberos указанное разрешение.
Более конкретно, данный метод возвращает true, если выполняются все следующие условия (и возвращает false, если хотя бы одно из них не выполняется):
- p является экземпляром
ServicePermission, - действия p являются правильным подмножеством действий данного
ServicePermission, - имя p равно имени данного
ServicePermission, или имя данногоServicePermissionравно "*".
- Определено в:
-
impliesв классеPermission - Параметры:
-
p— разрешение для проверки. - Возвращает:
- true, если указанное разрешение подразумевается данным объектом, false — в противном случае.
equals
public boolean equals(Object obj)
Проверяет два объекта ServicePermission на равенство.
- Определено в:
-
equalsв классеPermission - Параметры:
-
obj— объект для проверки на равенство с данным объектом. - Возвращает:
- true, если
objявляется ServicePermission и имеет тот же принципал службы и действия, что и данный объект ServicePermission. - См. также:
-
Object.hashCode(),HashMap
hashCode
public int hashCode()
Возвращает значение хэш-кода для данного объекта.
- Определено в:
-
hashCodeв классеPermission - Возвращает:
- значение хэш-кода для данного объекта.
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
getActions
public String getActions()
Возвращает каноническое строковое представление действий. Всегда возвращает присутствующие действия в следующем порядке: initiate, accept.
- Определено в:
-
getActionsв классеPermission - Возвращает:
- действия данного разрешения.
newPermissionCollection
public PermissionCollection newPermissionCollection()
Возвращает объект PermissionCollection для хранения объектов ServicePermission.
Объекты ServicePermission должны храниться таким образом, чтобы их можно было вставлять в коллекцию в любом порядке, но также чтобы метод PermissionCollection implies можно было реализовать эффективным (и согласованным) образом.
- Переопределяет:
-
newPermissionCollectionв классеPermission - Возвращает:
- новый объект PermissionCollection, подходящий для хранения ServicePermission.
© 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.security.jgss/javax/security/auth/kerberos/ServicePermission.html