Spec-Zone .ru
спецификации, руководства, описания, API
|
sun.security.provider.PolicyFile
. Этот класс полностью осуждается.@Deprecated public class PolicyFile extends Policy
javax.security.auth.Policy
. Это объектно-ориентированные памяти, политика для всей Среды выполнения Java, и является объединением многократных статических конфигураций политики, которое находится в файлах. Алгоритм для того, чтобы определить местоположение файла (ов) политики и считать их информацию в это Policy
объект:
java.security.Security
свойства, автор policy.url.1, автор policy.url.2..., auth.policy.url. X". Эти свойства устанавливаются в файле свойств безопасности Java, который располагается в файле под названием <JAVA_HOME>/lib/security/java.security. <JAVA_HOME> обращается к значению java.home системного свойства, и определяет каталог, где JRE устанавливается. Каждое значение свойства определяет a 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
класс. Кроме того, principalName может также быть установлен в подстановочное значение, *, позволяя это соответствовать любому Principal
имя. Устанавливая principalName в *, не окружайте * кавычками.
Запись разрешения должна начаться со слова permission
. Слово Type
в шаблоне выше определенный тип полномочий, такой как java.io.FilePermission
или java.lang.RuntimePermission
.
"Действие" требуется для многих типов полномочий, такой как java.io.FilePermission
(где это определяет, какой доступ к файлу, который разрешается). Это не требуется для категорий такой как java.lang.RuntimePermission
где это не необходимо - Вы любому определили разрешение "name"
значение после имени типа или Вы не делаете.
signedBy
пара имя/значение для записи разрешения является дополнительной. Если существующий, это указывает на разрешение со знаком. Таким образом, сам класс полномочий должен быть подписан данным псевдонимом для этого, чтобы быть предоставленным. Например, предположите, что у Вас есть следующая запись предоставления:
grant principal foo.com.Principal "Duke" { permission Foo "foobar", signedBy "FooSoft"; }
Затем это разрешение типа Foo предоставляют если Foo.class
разрешение было подписано псевдонимом "FooSoft", или если Foo.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
Конструктор и Описание |
---|
PolicyFile()
Осуждаемый.
Инициализирует объект Политики и читает конфигурационный файл (ы) политики по умолчанию в объект Политики.
|
Модификатор и Тип | Метод и Описание |
---|---|
PermissionCollection |
getPermissions(Subject subject, CodeSource codesource)
Осуждаемый.
Исследует это
Policy и возвращает Полномочия, предоставленные указанному Subject и CodeSource . |
void |
refresh()
Осуждаемый.
Обновляет объект политики, перечитывая все файлы политики.
|
public PolicyFile()
public void refresh()
refresh
в классе 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()
равняется имени класса P1's, и где P2.getName()
равняется имени P1's. com.sun.security.auth.PrincipalComparator
, и P1.implies
обеспеченный Subject
. Отметьте что это Policy
у реализации есть специальная обработка для PrivateCredentialPermissions. Когда этот метод встречается с a PrivateCredentialPermission
который определяет "сам" как Principal
класс и имя, это не добавляет это Permission
к возвращенному PermissionCollection
. Вместо этого это создает новое PrivateCredentialPermission
для каждого Principal
связанный с обеспеченным Subject
. Каждый новый PrivateCredentialPermission
содержит тот же самый Учетный класс как определено в первоначально предоставленном разрешении, так же как Классе и имени для соответствующего Principal
.
getPermissions
в классе Policy
subject
- Полномочия, предоставленные этому Subject
и дополнительно обеспеченный CodeSource
возвращаются. codesource
- Полномочия, предоставленные этому CodeSource
и дополнительно обеспеченный Subject
возвращаются.Subject
CodeSource
.
Авторское право © 1998, 2011, Oracle и/или его филиалы. Все права защищены.