Spec-Zone .ru
спецификации, руководства, описания, API
|
public PermissionCollection getPermissions (java.security.ProtectionDomain pd)и у ProtectionDomain есть конструктор:
public ProtectionDomain (CodeSource cs, PermissionCollection permissions, ClassLoader loader, Principal[] principals)Эти два API обеспечивают вызывающие стороны средства запросить Политику для Основанных на принципале записей Разрешения.
@Deprecated public abstract class Policy extends Object
Это - абстрактный class для того, чтобы представить системную политику для Основанной на предмете авторизации. Реализация подкласса этого class обеспечивает средство определить Основанное на предмете управление доступом Policy
.
A Policy
объект может быть запрошен для набора Полномочий, предоставленных кодировать выполнение как a Principal
следующим способом:
policy = Policy.getPolicy(); PermissionCollection perms = policy.getPermissions(subject, codeSource);
Policy
объект консультируется с локальной политикой и возвращается, и приспособить Permissions
объект с Полномочиями, предоставленными Принципалам, связанным с обеспеченным предметом, и предоставленный коду, определяется обеспеченным codeSource. A Policy
содержит следующую информацию. Отметьте, что этот пример только представляет синтаксис для значения по умолчанию Policy
реализация. Реализации подкласса этого class могут реализовать альтернативные синтаксисы и могут получить Policy
из любого источника, такого как файлы, базы данных, или серверы.
Каждая запись в Policy
представляется как запись предоставления. Каждая запись предоставления определяет кодовую базу, подписывающие лица кода, и триплет Принципалов, так же как Полномочия, предоставленные тому триплету.
grant CodeBase ["URL"], Signedby ["signers"], Principal [Principal_Class] "Principal_Name" { Permission Permission_Class ["Target_Name"] [, "Permission_Actions"] [, signedBy "SignerName"]; };Компоненты CodeBase и Signedby пар имя/значение триплета являются дополнительными. Если они не будут присутствовать, то любая любая кодовая база будет соответствовать, и любое подписывающее лицо (включая код без знака) будет соответствовать. Например,
grant CodeBase "foo.com", Signedby "foo", Principal com.sun.security.auth.SolarisPrincipal "duke" { permission java.io.FilePermission "/home/duke", "read, write"; };Эта запись предоставления определяет что код от "foo.com", подписанный "foo', и работающий как a
SolarisPrincipal
с именем, герцогом, имеет тот Permission
. Это Permission
разрешает выполняющемуся коду читать и писать файлы в каталоге, "/home/duke". "Работать" как деталь Principal
, код вызывает Subject.doAs(subject, ...)
метод. После вызова того метода выполнения кода, поскольку все Принципалы связались с указанным Subject
. Отметьте что это Policy
(и Полномочия предоставляются в этом Policy
) только вступите в силу после звонка Subject.doAs
произошел.
Многократные Принципалы могут быть перечислены в пределах одной записи предоставления. Все Принципалы в записи предоставления должны быть связаны с Subject
если к Subject.doAs
для этого Subject
быть предоставленным указанные Полномочия.
grant Principal com.sun.security.auth.SolarisPrincipal "duke", Principal com.sun.security.auth.SolarisNumericUserPrincipal "0" { permission java.io.FilePermission "/home/duke", "read, write"; permission java.net.SocketPermission "duke.com", "connect"; };Эта запись предоставляет, что любой код, работающий и как "герцог" и как "0" разрешение читает и пишет файлы в корневом каталоге герцога, так же как разрешении, чтобы сделать сокетные соединения с "duke.com".
Отметьте, что не Основанные на принципале записи предоставления не разрешаются в этом Policy
. Поэтому, предоставьте записи, такие как:
grant CodeBase "foo.com", Signedby "foo" { permission java.io.FilePermission "/tmp/scratch", "read, write"; };отклоняются. Такое разрешение должно быть перечислено в
java.security.Policy
. Значение по умолчанию Policy
реализация может быть изменена, устанавливая значение auth.policy.provider
свойство безопасности к полностью определенному имени требуемого Policy
реализация class.
security properties
Модификатор | Конструктор и Описание |
---|---|
protected |
Policy()
Осуждаемый.
Единственный конструктор.
|
Модификатор и Тип | Метод и Описание |
---|---|
abstract PermissionCollection |
getPermissions(Subject subject, CodeSource cs)
Осуждаемый.
Получите Полномочия, предоставленные Принципалам, связанным с указанным
CodeSource . |
static Policy |
getPolicy()
Осуждаемый.
Возвращает установленный объект Политики.
|
abstract void |
refresh()
Осуждаемый.
Обновите и перезагрузите Политику.
|
static void |
setPolicy(Policy policy)
Осуждаемый.
Устанавливает объект Политики в масштабе всей системы.
|
protected Policy()
public static Policy getPolicy()
SecurityManager.checkPermission
с AuthPermission("getPolicy")
у разрешения, чтобы гарантировать вызывающую сторону есть разрешение, чтобы получить объект Политики. null
.SecurityException
- если у текущего потока нет разрешения, чтобы получить объект Политики.setPolicy(javax.security.auth.Policy)
public static void setPolicy(Policy policy)
SecurityManager.checkPermission
с AuthPermission("setPolicy")
у разрешения, чтобы гарантировать вызывающую сторону есть разрешение, чтобы установить Политику. policy
- новый системный объект Политики.SecurityException
- если у текущего потока нет разрешения, чтобы установить Политику.getPolicy()
public abstract PermissionCollection getPermissions(Subject subject, CodeSource cs)
CodeSource
. subject
- Subject
чьи связанные Принципалы, в соединении с обеспеченным CodeSource
, определяет Полномочия, возвращенные этим методом. Этот параметр может быть null
. cs
- код, определенный CodeSource
это определяет в соединении с обеспеченным Subject
, Полномочия возвратились этим методом. Этот параметр может быть null
.Subject
и код определяется в обеспеченном предмете и cs параметрах.public abstract void refresh()
Этот метод вызывает этот объект обновить/перезагрузить его текущую политику. Это является зависящим от реализации. Например, если объект Политики хранится в файле, вызывая refresh
заставит файл быть перечитанным.
SecurityException
- если у вызывающей стороны нет разрешения, чтобы обновить Политику.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92