Spec-Zone .ru
спецификации, руководства, описания, API
|
sun.security.provider.PolicyFile
. Этот class полностью осуждается.@Deprecated public class PolicyFile extends Policy
javax.security.auth.Policy
. Это объектно-ориентированные памяти, политика для всей Среды выполнения Java, и является объединением многократных статических конфигураций политики, которое находится в файлах. Алгоритм для того, чтобы определить местоположение файла (ов) политики и считать их информацию в это Policy
объект:
URL
указывая на файл политики, который будет загружен. Читайте в и загрузите каждую политику. java.lang.System
свойство java.security.auth.policy может также быть установлено в a URL
указывая на другой файл политики (который имеет место, когда пользователь использует переключатель-D во времени выполнения). Если это свойство определяется, и его использование позволяется файлом свойств безопасности (свойство Security, policy.allowSystemProperty устанавливается в истину), также загрузите ту политику. grant signedBy "alias", codeBase "URL", principal principalClass "principalName", principal principalClass "principalName", ... { permission Type "name "action", signedBy "alias"; permission Type "name "action", signedBy "alias"; .... };Все неполужирные элементы выше должны появиться, как (хотя случай не имеет значения, и некоторые являются дополнительными, как отмечено ниже). Курсивные элементы представляют значения переменных.
Запись предоставления должна начаться со слова grant
. signedBy
и codeBase
пары имя/значение являются дополнительными. Если они не будут присутствовать, то любое подписывающее лицо (включая код без знака) будет соответствовать, и любая кодовая база будет соответствовать. Отметьте что principal
пара имя/значение не является дополнительной. Это Policy
реализация только разрешает Основанные на принципале записи предоставления. Отметьте, что principalClass может быть установлен в подстановочное значение, *, который позволяет этому соответствовать любому Principal
class. Кроме того, principalName может также быть установлен в подстановочное значение, *, позволяя это соответствовать любому Principal
имя. Устанавливая principalName в *, не окружайте * кавычками.
Запись разрешения должна начаться со слова permission
. Слово Type
в шаблоне выше определенный тип полномочий, такой как java.io.FilePermission
или java.lang.RuntimePermission
.
"Действие" требуется для многих типов полномочий, такой как java.io.FilePermission
(где это определяет, какой доступ к файлу, который разрешается). Это не требуется для категорий такой как java.lang.RuntimePermission
где это не необходимо - Вы любому определили разрешение "name"
значение после имени типа или Вы не делаете.
signedBy
пара имя/значение для записи разрешения является дополнительной. Если существующий, это указывает на подписанное разрешение. Таким образом, само разрешение class должно быть подписано данным псевдонимом для этого, чтобы быть предоставленным. Например, предположите, что у Вас есть следующая запись предоставления:
grant principal foo.com.Principal "Duke" { permission Foo "foobar", signedBy "FooSoft"; }
Затем это разрешение типа Foo предоставляют если Foo.class
разрешение было подписано псевдонимом "FooSoft", или если Foo.class
система class (то есть, находится на ПУТИ К КЛАССУ).
Элементы, которые появляются в записи, должны появиться в указанном порядке (permission
, Введите, "назовите", и "действие"). Запись завершается с точкой с запятой.
Случай незначителен для идентификаторов (permission
, signedBy
, codeBase
, и т.д.), но является существенным для Типа или для любой строки, в которой передают как значение.
Пример двух записей в конфигурационном файле политики
// if the code is comes from "foo.com" and is running as "Duke", // grant it read/write to all files in /tmp. grant codeBase "foo.com", principal foo.com.Principal "Duke" { permission java.io.FilePermission "/tmp/*", "read,write"; }; // grant any code running as "Duke" permission to read // the "java.vendor" Property. grant principal foo.com.Principal "Duke" { permission java.util.PropertyPermission "java.vendor";
Это Policy
реализация поддерживает специальную обработку для PrivateCredentialPermissions. Если запись предоставления конфигурируется с a PrivateCredentialPermission
, и "Основное Имя Класса/Принципала" для этого PrivateCredentialPermission
"сам", тогда запись предоставляет указанное Subject
разрешение, чтобы получить доступ к его собственным частным Учетным данным. Например, следующие предоставления Subject
Доступ "Герцога" к его собственному a.b. Учетные данные.
grant principal foo.com.Principal "Duke" { permission javax.security.auth.PrivateCredentialPermission "a.b.Credential self", "read"; };Следующие предоставления
Subject
Доступ "Герцога" ко всем его собственным частным Учетным данным: grant principal foo.com.Principal "Duke" { permission javax.security.auth.PrivateCredentialPermission "* self", "read"; };Следующие предоставления все Предметы, аутентифицируемые как a
SolarisPrincipal
(независимо от их соответствующих имен) разрешение, чтобы получить доступ к их собственным частным Учетным данным: grant principal com.sun.security.auth.SolarisPrincipal * { permission javax.security.auth.PrivateCredentialPermission "* self", "read"; };Следующие предоставления все разрешение Предметов, чтобы получить доступ к их собственным частным Учетным данным:
grant principal * * { permission javax.security.auth.PrivateCredentialPermission "* self", "read"; };
CodeSource
, Permissions
, ProtectionDomain
, security properties
Конструктор и Описание |
---|
PolicyFile()
Осуждаемый.
Инициализирует объект Политики и читает конфигурационный файл (ы) политики значения по умолчанию в объект Политики.
|
Модификатор и Тип | Метод и Описание |
---|---|
PermissionCollection |
getPermissions(Subject subject, CodeSource codesource)
Осуждаемый.
Исследует это
Policy и возвращает Полномочия, предоставленные указанному Subject и CodeSource . |
void |
refresh()
Осуждаемый.
Обновляет объект политики, перечитывая все файлы политики.
|
public PolicyFile()
public void refresh()
refresh
в class Policy
SecurityException
- если у вызывающей стороны нет разрешения, чтобы обновить Policy
.public PermissionCollection getPermissions(Subject subject, CodeSource codesource)
Policy
и возвращает Полномочия, предоставленные указанному Subject
и CodeSource
. Полномочия для определенной записи предоставления возвращаются если CodeSource
созданное использование кодовой базы и значений signedby определяется в записи implies
CodeSource
если к этому методу, и если Subject
если к этому методу содержит все Принципалы, определенные в записи.
Subject
если к этому методу содержит все Принципалы, определенные в записи если, для каждого Principal
, "P1", определенный в записи предоставления одно из следующих двух условий, встречается:
Subject
имеет a Principal
, "P2", где P2.getClass().getName()
равняется имени class P1's, и где P2.getName()
равняется имени P1's. com.sun.security.auth.PrincipalComparator
, и P1.implies
обеспеченный Subject
. Отметьте что это Policy
у реализации есть специальная обработка для PrivateCredentialPermissions. Когда этот метод встречается с a PrivateCredentialPermission
который определяет "сам" как Principal
class и имя, это не добавляет это Permission
к возвращенному PermissionCollection
. Вместо этого это создает новое PrivateCredentialPermission
для каждого Principal
связанный с обеспеченным Subject
. Каждый новый PrivateCredentialPermission
содержит те же самые Учетные данные class как определено в первоначально предоставленном разрешении, так же как Классе и имени для соответствующего Principal
.
getPermissions
в class Policy
subject
- Полномочия, предоставленные этому Subject
и дополнительно обеспеченный CodeSource
возвращаются. codesource
- Полномочия, предоставленные этому CodeSource
и дополнительно обеспеченный Subject
возвращаются.Subject
CodeSource
.
Авторское право © 1998, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92