|
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 Objecto - Объект, который будет сравнен для равенства с этим Subject.Subject.SecurityException - если у вызывающей стороны нет разрешения, чтобы получить доступ к частным учетным данным для этого Subject, или если у вызывающей стороны нет разрешения, чтобы получить доступ к частным учетным данным для обеспеченного Subject.Object.hashCode(), HashMappublic String toString()
Subject. public int hashCode()
Subject. hashCode в class ObjectSubject.SecurityException - если у вызывающей стороны нет разрешения, чтобы получить доступ к частным учетным данным этого Предмета.Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92