|
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