Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class Subject extends Object implements Serializable
A Subject
представляет группировку соответствующей информации для единственного объекта, такого как человек. Такая информация включает идентификационные данные Предмета так же как его связанные с безопасностью атрибуты (пароли и криптографические ключи, например).
У предметов могут потенциально быть многократные идентификационные данные. Каждые идентификационные данные представляются как a Principal
в пределах Subject
. Принципалы просто связывают имена к a Subject
. Например, a Subject
это, оказывается, человек, Элис, мог бы иметь два Принципала: тот, который связывает "Элис Бэр", имя на ее водительских правах, к Subject
, и другой, который связывает, "999-99-9999", число на ее студенческом удостоверении личности, к Subject
. Оба Принципала обращаются к тому же самому Subject
даже при том, что у каждого есть другое имя.
A Subject
маю также принадлежат связанные с безопасностью атрибуты, которые упоминаются как учетные данные. Чувствительные учетные данные, которые требуют специальной защиты, такой как частные криптографические ключи, сохранены в пределах частных учетных данных Set
. Учетные данные, предназначенные, чтобы быть совместно использованными, такие как сертификаты с открытым ключом или билеты сервера Kerberos, сохранены в пределах общедоступных учетных данных Set
. Различные полномочия обязаны доступ и изменяют различные учетные Наборы.
Получать все Принципалы, связанные с a Subject
, вызовите getPrincipals
метод. Получать все общедоступные или частные учетные данные, принадлежащие a Subject
, вызовите getPublicCredentials
метод или getPrivateCredentials
метод, соответственно. Изменить возвращенный Set
из Принципалов и учетных данных, используйте методы, определенные в Set
class. Например:
Subject subject; Principal principal; Object credential; // add a Principal and credential to the Subject subject.getPrincipals().add(principal); subject.getPublicCredentials().add(credential);
Это Subject
Реализации class Serializable
. В то время как Принципалы, связанные с Subject
сериализируются, учетные данные, связанные с Subject
не. Отметьте что java.security.Principal
class не реализует Serializable
. Поэтому весь бетон Principal
реализации, связанные с Предметами, должны реализовать Serializable
.
Principal
, DomainCombiner
, Сериализированная ФормаКонструктор и Описание |
---|
Subject()
Создайте экземпляр a
Subject с пустым Set из Принципалов и пустых множеств общедоступных и частных учетных данных. |
Subject(boolean readOnly, Set<? extends Principal> principals, Set<?> pubCredentials, Set<?> privCredentials)
Создайте экземпляр a
Subject с Принципалами и учетными данными. |
Модификатор и Тип | Метод и Описание |
---|---|
static <T> T |
doAs(Subject subject, PrivilegedAction<T> action)
Выполните работу как деталь
Subject . |
static <T> T |
doAs(Subject subject, PrivilegedExceptionAction<T> action)
Выполните работу как деталь
Subject . |
static <T> T |
doAsPrivileged(Subject subject, PrivilegedAction<T> action, AccessControlContext acc)
Выполните привилегированную работу как деталь
Subject . |
static <T> T |
doAsPrivileged(Subject subject, PrivilegedExceptionAction<T> action, AccessControlContext acc)
Выполните привилегированную работу как деталь
Subject . |
boolean |
equals(Object o)
Сравнивает указанный Объект с этим
Subject для равенства. |
Set<Principal> |
getPrincipals()
Возвратитесь
Set из Принципалов, связанных с этим Subject . |
<T extends Principal> |
getPrincipals(Class<T> c)
Возвратите a
Set из Принципалов, связанных с этим Subject это - экземпляры или подклассы указанного Class . |
Set<Object> |
getPrivateCredentials()
Возвратитесь
Set из частных учетных данных, сохраненных этим Subject . |
<T> Set<T> |
getPrivateCredentials(Class<T> c)
Возвратите a
Set из частных учетных данных, связанных с этим Subject это - экземпляры или подклассы указанного Class . |
Set<Object> |
getPublicCredentials()
Возвратитесь
Set из общедоступных учетных данных, сохраненных этим Subject . |
<T> Set<T> |
getPublicCredentials(Class<T> c)
Возвратите a
Set из общедоступных учетных данных, связанных с этим Subject это - экземпляры или подклассы указанного Class . |
static Subject |
getSubject(AccessControlContext acc)
Доберитесь
Subject связанный с обеспеченным AccessControlContext . |
int |
hashCode()
Возвращает хэш-код для этого
Subject . |
boolean |
isReadOnly()
Запрос, ли это
Subject только для чтения. |
void |
setReadOnly()
Установите это
Subject быть только для чтения. |
Строка |
toString()
Возвратите Строковое представление этого
Subject . |
public Subject()
Subject
с пустым Set
из Принципалов и пустых множеств общедоступных и частных учетных данных. Недавно созданные Наборы проверяют ли это Subject
был установлен только для чтения прежде, чем разрешить последующие модификации. Недавно создаваемые Наборы также предотвращают недопустимые модификации, гарантируя, что у вызывающих сторон есть достаточные полномочия.
Чтобы изменить Набор Принципалов, вызывающая сторона должна иметь AuthPermission("modifyPrincipals")
. Чтобы изменить общедоступный учетный Набор, вызывающая сторона должна иметь AuthPermission("modifyPublicCredentials")
. Чтобы изменить частный учетный Набор, вызывающая сторона должна иметь AuthPermission("modifyPrivateCredentials")
.
public Subject(boolean readOnly, Set<? extends Principal> principals, Set<?> pubCredentials, Set<?> privCredentials)
Subject
с Принципалами и учетными данными. Принципалы и учетные данные от указанных Наборов копируются в недавно созданные Наборы. Эти недавно создаваемые Наборы проверяют ли это Subject
был установлен только для чтения прежде, чем разрешить последующие модификации. Недавно создаваемые Наборы также предотвращают недопустимые модификации, гарантируя, что у вызывающих сторон есть достаточные полномочия.
Чтобы изменить Набор Принципалов, вызывающая сторона должна иметь AuthPermission("modifyPrincipals")
. Чтобы изменить общедоступный учетный Набор, вызывающая сторона должна иметь AuthPermission("modifyPublicCredentials")
. Чтобы изменить частный учетный Набор, вызывающая сторона должна иметь AuthPermission("modifyPrivateCredentials")
.
readOnly
- истина, если Subject
должно быть только для чтения, и ложным иначе. principals
- Set
из Принципалов, которые будут связаны с этим Subject
. pubCredentials
- Set
из общедоступных учетных данных, которые будут связаны с этим Subject
. privCredentials
- Set
из частных учетных данных, которые будут связаны с этим Subject
.NullPointerException
- если указанное principals
, pubCredentials
, или privCredentials
null
.public void setReadOnly()
Subject
быть только для чтения. Модификации (дополнения и удаления) к этому Предмету Principal
Set
и учетные Наборы будут отвергнуты. destroy
работа на учетных данных этого Предмета будет все еще разрешена.
Последующие попытки изменить Предмет Principal
и учетные Наборы приведут к IllegalStateException
быть брошенным. Кроме того, однажды a Subject
только для чтения, это не может быть сброшено к тому, чтобы быть перезаписываемым снова.
SecurityException
- если у вызывающей стороны нет разрешения, чтобы установить это Subject
быть только для чтения.public boolean isReadOnly()
Subject
только для чтения. Subject
только для чтения, ложен иначе.public static Subject getSubject(AccessControlContext acc)
Subject
связанный с обеспеченным AccessControlContext
. AccessControlContext
может содержать много Предметов (от вложенного doAs
вызовы). В этой ситуации, новом Subject
связанный с AccessControlContext
возвращается.
acc
- AccessControlContext
от которого можно получить Subject
.Subject
связанный с обеспеченным AccessControlContext
, или null
если нет Subject
связывается с обеспеченным AccessControlContext
.SecurityException
- если у вызывающей стороны нет разрешения, чтобы добраться Subject
. NullPointerException
- если обеспеченный AccessControlContext
null
.public static <T> T doAs(Subject subject, PrivilegedAction<T> action)
Subject
. Этот метод сначала получает текущий поток AccessControlContext
через AccessController.getContext
, и затем инстанцирует нового AccessControlContext
использование полученного контекста наряду с новым SubjectDomainCombiner
(созданное использование обеспеченного Subject
). Наконец, этот метод вызывает AccessController.doPrivileged
, передача этого обеспеченный PrivilegedAction
, так же как недавно созданный AccessControlContext
.
subject
- Subject
то, что указанное action
будет работать как. Этот параметр может быть null
. action
- код, который будет выполнен как указанное Subject
. run
метод.NullPointerException
- если PrivilegedAction
null
. SecurityException
- если у вызывающей стороны нет разрешения, чтобы вызвать этот метод.public static <T> T doAs(Subject subject, PrivilegedExceptionAction<T> action) throws PrivilegedActionException
Subject
. Этот метод сначала получает текущий поток AccessControlContext
через AccessController.getContext
, и затем инстанцирует нового AccessControlContext
использование полученного контекста наряду с новым SubjectDomainCombiner
(созданное использование обеспеченного Subject
). Наконец, этот метод вызывает AccessController.doPrivileged
, передача этого обеспеченный PrivilegedExceptionAction
, так же как недавно созданный AccessControlContext
.
subject
- Subject
то, что указанное action
будет работать как. Этот параметр может быть null
. action
- код, который будет выполнен как указанное Subject
. run
метод.PrivilegedActionException
- если PrivilegedExceptionAction.run
метод выдает проверенное исключение. NullPointerException
- если указанное PrivilegedExceptionAction
null
. SecurityException
- если у вызывающей стороны нет разрешения, чтобы вызвать этот метод.public static <T> T doAsPrivileged(Subject subject, PrivilegedAction<T> action, AccessControlContext acc)
Subject
. Этот метод ведет себя точно как Subject.doAs
, за исключением того, что вместо того, чтобы получить текущий поток AccessControlContext
, это использует обеспеченный AccessControlContext
. Если обеспеченный AccessControlContext
null
, этот метод инстанцирует нового AccessControlContext
с пустым набором ProtectionDomains.
subject
- Subject
то, что указанное action
будет работать как. Этот параметр может быть null
. action
- код, который будет выполнен как указанное Subject
. acc
- AccessControlContext
быть связанным к указанному предмету и действию. run
метод.NullPointerException
- если PrivilegedAction
null
. SecurityException
- если у вызывающей стороны нет разрешения, чтобы вызвать этот метод.public static <T> T doAsPrivileged(Subject subject, PrivilegedExceptionAction<T> action, AccessControlContext acc) throws PrivilegedActionException
Subject
. Этот метод ведет себя точно как Subject.doAs
, за исключением того, что вместо того, чтобы получить текущий поток AccessControlContext
, это использует обеспеченный AccessControlContext
. Если обеспеченный AccessControlContext
null
, этот метод инстанцирует нового AccessControlContext
с пустым набором ProtectionDomains.
subject
- Subject
то, что указанное action
будет работать как. Этот параметр может быть null
. action
- код, который будет выполнен как указанное Subject
. acc
- AccessControlContext
быть связанным к указанному предмету и действию. run
метод.PrivilegedActionException
- если PrivilegedExceptionAction.run
метод выдает проверенное исключение. NullPointerException
- если указанное PrivilegedExceptionAction
null
. SecurityException
- если у вызывающей стороны нет разрешения, чтобы вызвать этот метод.public Set<Principal> getPrincipals()
Set
из Принципалов, связанных с этим Subject
. Каждый Principal
представляет идентификационные данные для этого Subject
. Возвращенный Set
поддерживается этим внутренним Предметом Principal
Set
. Любая модификация к возвращенному Set
влияет на внутреннее Principal
Set
также.
Set
из Принципалов, связанных с этим Subject
.public <T extends Принципал> Набор<T> getPrincipals(Class<T> c)
Set
из Принципалов, связанных с этим Subject
это - экземпляры или подклассы указанного Class
. Возвращенный Set
не поддерживается этим внутренним Предметом Principal
Set
. Новое Set
создается и возвращается для каждого вызова метода. Модификации к возвращенному Set
не будет влиять на внутреннее Principal
Set
.
c
- возвращенный Set
из Принципалов все будут экземпляры этого class.Set
из Принципалов, которые являются экземплярами указанного Class
.NullPointerException
- если указанное Class
null
.public Set<Object> getPublicCredentials()
Set
из общедоступных учетных данных, сохраненных этим Subject
. Возвращенный Set
поддерживается внутренними общедоступными Учетными данными этого Предмета Set
. Любая модификация к возвращенному Set
влияет на внутренние общедоступные Учетные данные Set
также.
Set
из общедоступных учетных данных, сохраненных этим Subject
.public Set<Object> getPrivateCredentials()
Set
из частных учетных данных, сохраненных этим Subject
. Возвращенный Set
поддерживается внутренними частными Учетными данными этого Предмета Set
. Любая модификация к возвращенному Set
влияет на внутренние частные Учетные данные Set
также.
Вызывающая сторона требует, чтобы полномочия получили доступ к Учетным данным в возвращенном Set
, или изменить Set
непосредственно. A SecurityException
бросается, если у вызывающей стороны нет надлежащих полномочий.
Выполняя итерации через Set
, a SecurityException
бросается, если у вызывающей стороны нет разрешения, чтобы получить доступ к определенным Учетным данным. Iterator
однако совершенствуется к следующему элементу в Set
.
Set
из частных учетных данных, сохраненных этим Subject
.public <T> Set<T> getPublicCredentials(Class<T> c)
Set
из общедоступных учетных данных, связанных с этим Subject
это - экземпляры или подклассы указанного Class
. Возвращенный Set
не поддерживается внутренними общедоступными Учетными данными этого Предмета Set
. Новое Set
создается и возвращается для каждого вызова метода. Модификации к возвращенному Set
не будет влиять на внутренние общедоступные Учетные данные Set
.
c
- возвращенный Set
из общедоступных учетных данных все будут экземпляры этого class.Set
из общедоступных учетных данных, которые являются экземплярами указанного Class
.NullPointerException
- если указанное Class
null
.public <T> Set<T> getPrivateCredentials(Class<T> c)
Set
из частных учетных данных, связанных с этим Subject
это - экземпляры или подклассы указанного Class
. У вызывающей стороны должно быть разрешение, чтобы получить доступ ко всем требуемым Учетным данным, или a SecurityException
будет брошен.
Возвращенный Set
не поддерживается внутренними частными Учетными данными этого Предмета Set
. Новое Set
создается и возвращается для каждого вызова метода. Модификации к возвращенному Set
не будет влиять на внутренние частные Учетные данные Set
.
c
- возвращенный Set
из частных учетных данных все будут экземпляры этого class.Set
из частных учетных данных, которые являются экземплярами указанного Class
.NullPointerException
- если указанное Class
null
.public boolean equals(Object o)
Subject
для равенства. Возвращает true, если данным объектом является также Предмет и два Subject
экземпляры эквивалентны. Более формально, два Subject
экземпляры равны если их Principal
и Credential
Наборы равны. equals
в class Object
o
- Объект, который будет сравнен для равенства с этим Subject
.Subject
.SecurityException
- если у вызывающей стороны нет разрешения, чтобы получить доступ к частным учетным данным для этого Subject
, или если у вызывающей стороны нет разрешения, чтобы получить доступ к частным учетным данным для обеспеченного Subject
.Object.hashCode()
, HashMap
public String toString()
Subject
. public int hashCode()
Subject
. hashCode
в class Object
Subject
.SecurityException
- если у вызывающей стороны нет разрешения, чтобы получить доступ к частным учетным данным этого Предмета.Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92