Spec-Zone .ru
спецификации, руководства, описания, API
|
Создает и изменяет конфигурационные файлы внешней политики, которые определяют политику безопасности Java Вашей установки.
Политика для Среды выполнения Java (определение, какие полномочия доступны для кода из различных источников, выполняясь как различные принципалы) представляется объектом Политики. Реализация Политики по умолчанию получает свою информацию из статических конфигурационных файлов политики ASCII.
Файл политики может быть составлен через простой текстовый редактор, или через графическую утилиту Policy Tool, описанную в этом документе. Используя Средство осуществления политики сохраняет ввод и избавляет от необходимости Вас знать необходимый синтаксис файла политики, таким образом уменьшающий ошибки.
Раздел Использования Средства осуществления политики описывает, как использовать Средство осуществления политики, чтобы создать и изменить файлы политики.
Раздел В качестве примера обеспечивает детализированные примеры использования Средства осуществления политики.
Видение Также разделяет, обеспечивает ссылки к связанной документации.
Чтобы запустить Средство осуществления политики, просто введите следующее в командной строке.
policytool
Это переводит окно "Средства осуществления политики" в рабочее состояние.
Всякий раз, когда Средство осуществления политики запускается, оно пытается заполнить это окно с информацией о политике от того, что иногда упоминается как "пользовательский файл политики". Пользовательский файл политики является по умолчанию названным файлом .java.policy
в Вашем корневом каталоге. Если Средство осуществления политики не может найти пользовательский файл политики, оно сообщает о ситуации и выводит на экран пустое окно "Средства осуществления политики" (то есть, окно с заголовками и кнопки, но никакие данные в этом):
Можно тогда продолжить, чтобы или открыться безотносительно файла политики, Вы хотите продолжить работать или создать новый файл политики, добавляя записи политики, дополнительно определяя keystore, и сохранив файл).
В первый раз Вы выполняете Средство осуществления политики, не будет пользовательского файла политики (если Вы не создали тот вручную).
Чтобы создать новый файл политики, запустите, просто выбирая команду New из меню File. Это закроет в настоящий момент открытый файл политики (если таковые вообще имеются, после первого запроса Вас сохранить это если нужно) и переведет в рабочее состояние новое окно средства осуществления политики, то есть, окно с заголовками и кнопки, но никакие данные в этом.
Пожалуйста, Отметьте: это не необходимо в первый раз, когда Вы выполняете Средство осуществления политики. Так как инструмент пытается открыть пользовательский файл политики, и каждый еще не существует (если это не создавалось вручную), инструмент переведет окно в рабочее состояние без любых данных в этом.
Как только у Вас есть новое окно средства осуществления политики, можно тогда создать записи политики, и определить keystore (если какая-либо из записей политики определяет псевдоним keystore). В любой точке можно сохранить файл политики.
Чтобы работать над различным файлом политики чем тот, в настоящий момент работающий на (если кто-либо), используйте команду Open в меню File.
Это закроет в настоящий момент открытый файл политики (если таковые вообще имеются, после первого запроса Вас сохранить это если нужно) и подарит Вам Открытое диалоговое окно, которое можно использовать, чтобы переместиться по структуре каталогов, пока Вы не добираетесь до каталога, содержащего файл политики, Вы хотите продолжить работать. Выберите тот файл, затем выберите кнопку OK.
Окно "Средства осуществления политики" тогда будет заполнено в информацией от файла политики, включая имя файла политики, keystore URL (если любой), и CodeBase, SignedBy и Основные части каждой записи политики в файле политики.
Чтобы определить keystore, содержащий ключевую информацию для псевдонимов, определенных в частях SignedBy записей политики, выберите Команду редактирования в меню Keystore.
Это переводит в рабочее состояние диалоговое окно, в котором Вы определяете новый keystore URL и дополнительно тип keystore.
Как пример, чтобы определить keystore, названный "mykeystore" в /tests/
каталог, введите следующий file:
URL в текстовое поле маркированный "Новый KeyStore URL".
file:/tests/mykeystore
Чтобы также определить, что тип keystore является "JKS" (собственный тип keystore, поддерживаемый Sun Microsystems), введите следующее в текстовое поле маркированный "Новый Тип KeyStore".
JKS
Когда Вы делаетесь, определяя keystore URL и тип (если любой), выберите OK (или можно выбрать Отмену, чтобы отменить работу). Если Вы не отменяли, текстовое поле маркированный "Keystore:" теперь заполнено в keystore URL и типом.
Чтобы добавить новую запись политики, нажмите кнопку Add Policy Entry в основном окне "Средства осуществления политики".
Это переводит "диалоговое окно" Записи Политики в рабочее состояние:
Используя это диалоговое окно, Вы определяете
/JavaSoft/TESTS/
каталог, введите следующий файл URL в текстовое поле CodeBase: file:/JavaSoft/TESTS/
duke
Значение SignedBy является строковым псевдонимом, который отображается (использование keystore) к ряду открытых ключей, которые связываются с подписывающими лицами. Эти ключи используются, чтобы проверить, что классы из указанного источника кода действительно подписываются этими подписывающими лицами.
Значение SignedBy может быть разделенной от запятой строкой, содержащей имена многократных подписывающих лиц, примером которых является "Адам, Канун, Чарльз", что означает "подписанный Адамом и Евой и Чарльзом" (то есть, отношение И, не ИЛИ).
Значение SignedBy является дополнительным в этом, если оно опускается, оно показывает "любое подписывающее лицо," или другими словами, не имеет значения, подписывается ли код или нет. Точно так же, если нет никакой записи CodeBase, то это показывает "любой код"; не имеет значения, где код происходит из.
Таким образом, если не будет никакой записи CodeBase, то всему коду, подписанному указанным псевдонимом (ами), предоставят указанные полномочия. Если не будет никакой записи SignedBy, то всему коду от указанного CodeBase предоставят указанные полномочия, независимо от того, подписывается ли код или нет, и кого. Если не будет никакой записи CodeBase, и также никакой записи SignedBy, то всему коду предоставят указанные полномочия.
Отметьте: точное значение значения CodeBase зависит от символов в конце. CodeBase с запаздыванием "/" соответствует все файлы класса (не файлы JAR) в указанном каталоге. CodeBase с запаздыванием "/*" соответствует все файлы (и класс и файлы JAR) содержавшийся в том каталоге. CodeBase с запаздыванием "/-" соответствует все файлы (и класс и файлы JAR) в каталоге и рекурсивно всех файлах в подкаталогах, содержавшихся в том каталоге.
Запись Принципалов определяет список "основных значений". Каждое основное значение определяет principal_type/principal_name пару, которая должна присутствовать в пределах основного набора выполняющегося потока. Запись Принципалов является дополнительной в этом, если она опускается, она показывает "любые принципалы".
Если нет никакого определенного principal_type, и principal_name является заключенной в кавычки строкой, строка обрабатывается как псевдоним keystore, когда файл политики обрабатывается во время выполнения. С keystore консультируются и запрашивается (через псевдоним) для Сертификата X509. Если Вы находитесь, основной тип, как автоматически предполагается, является javax.security.auth.x500. X500Principal, и фактическое основное имя, как предполагается, являются подчиненным отличительным именем от сертификата. Если отображение Сертификата X509 не находится, все полномочия предоставления записи политики к указанному принципалу игнорируется.
Чтобы добавить новый принципал, нажмите кнопку Add Principal в "диалоговом окне" Записи Политики. Это переводит диалоговое окно "Принципалов" в рабочее состояние:
Добавить принципал:
Выпадающий список маркированный "Основной Тип:" содержит список встроенных основных типов. Если Вы хотите такой тип, выберите его из списка, и полное основное имя типа появляется в текстовом поле направо от выпадающего списка.
Если Вы вместо этого хотите определить, что основной тип, определенный Вами или другими, вводит основной тип в текстовое поле.
Введите основное имя непосредственно в текстовое поле направо от текстового поля "Principal Name:". Например, чтобы определить названный принципал duke
, ввести
duke
Когда Вы делаетесь, определяя основную информацию, выберите кнопку OK (или Отмена к отмене). Новый принципал появляется в строке в записи "Принципалов".
Можно тогда добавить дополнительные принципалы следующим та же самая последовательность шагов. Или можно отредактировать или удалить существующий принципал.
Чтобы отредактировать существующий принципал, выберите строку для того принципала в "Принципалах:" запись, затем нажмите кнопку Edit Principal. Альтернативно, можно просто дважды щелкнуть по строке для того принципала.
Это переводит тот же самый тип в рабочее состояние диалогового окна "Принципалов", как появляется, когда Вы добавляете, что новый принципал, кроме в этом случае диалогового окна заполнен в существующей основной информацией. Чтобы изменить информацию, или сделайте новые выборы из выпадающих списков или замените информацию в текстовых полях.
Когда Вы делаетесь, выберите кнопку OK (или Отмена к изменениям отмены). Принципалы:" запись теперь показывает принципал с Вашими модификациями.
Чтобы удалить существующий принципал, выберите строку для того принципала в "Принципалах:" запись, затем нажмите кнопку Remove Principal.
Чтобы добавить новое разрешение, нажмите кнопку Add Permission в "диалоговом окне" Записи Политики. Это переводит диалоговое окно "Полномочий" в рабочее состояние:
Добавить разрешение:
Выпадающий список маркированное "Разрешение:" содержит список встроенных типов полномочий. Если Вы хотите такой тип, выберите его из списка, и полное имя типа полномочий появляется в текстовом поле направо от выпадающего списка.
Если Вы вместо этого хотите определить, что тип полномочий, определенный Вами или другими, вводит тип полномочий в текстовое поле.
Если Вы выбрали встроенное разрешение из выпадающего списка "Permission:", и у полномочий того типа есть определенные целевые значения имени, то выпадающий список маркированное "Целевое Имя:" содержит список тех значений, из которых можно выбрать.
В некоторых случаях, где целевые возможности имени бесконечны, но есть некоторые встроенные целевые спецификации имени, у которых есть особое значение, такие целевые имена появятся в выпадающем списке. Например, специальное целевое имя" <<Все Файлы>>" появится в списке для Полномочий Файла.
Чтобы определить целевое имя, не доступное в выпадающем списке, введите целевое имя непосредственно в текстовое поле направо от выпадающего списка "Target Name:". Например, чтобы определить названный файл data
в /JavaSoft/ptTest/
каталог, ввести
/JavaSoft/ptTest/data
У некоторых полномочий только есть целевое имя, но никакие действия. Для таких полномочий оставьте текстовое поле направо от пробела выпадающего списка "Actions:". (Это будет автоматически затемнено и недоступно этому типу встроенного разрешения.)
Для полномочий, требующих спецификаций действия, введите список разделенных запятой значений действий в текстовое поле, или выберите их из выпадающего списка. Например, чтобы определить и доступ для чтения и доступ для записи к файлу, определенному для Разрешения Файла, сначала выберите read
(или write
, порядок не имеет значения) от списка. Слово "чтение" появляется в текстовом поле. Затем выберите write
, и слово "запись" будет добавляться, предшествоваться запятой и пространством.
Когда Вы делаетесь, определяя информацию о разрешении, выберите кнопку OK (или Отмена к отмене). Новое разрешение появляется в строке в "диалоговом окне" Записи Политики.
Можно тогда добавить дополнительные полномочия следующим та же самая последовательность шагов. Или можно отредактировать существующее разрешение или удалить разрешение.
Чтобы отредактировать существующее разрешение, выберите строку для того разрешения в "диалоговом окне" Записи Политики, затем нажмите кнопку Edit Permission. Альтернативно, можно просто дважды щелкнуть по строке для того разрешения.
Это переводит тот же самый тип в рабочее состояние диалогового окна "Полномочий", как появляется, когда Вы добавляете, что новое разрешение, кроме в этом случае диалогового окна заполнено в существующей информацией о разрешении. Чтобы изменить информацию, или сделайте новые выборы из выпадающих списков или замените информацию в текстовых полях.
Когда Вы делаетесь, выберите кнопку OK (или Отмена к изменениям отмены). "Диалоговое окно" Записи Политики теперь показывает разрешение с любыми модификациями, которые Вы сделали.
Чтобы удалить существующее разрешение, выберите строку для того разрешения в "диалоговом окне" Записи Политики, затем нажмите кнопку Remove Permission.
Как только Вы делаетесь, добавляя запись политики, нажимаете кнопку Done в "диалоговом окне" Записи Политики, или Отмену к отмене.
Если Вы выбрали Сделанный, окно "Средства осуществления политики" теперь содержит строку, представляющую запись политики. Строка содержит CodeBase, SignedBy и информацию о Принципалах (если любой). Если ни один не был определен в "диалоговом окне" Записи Политики, только
CodeBase <ALL>
появляется.
Отметьте: предупреждение выводится на экран после закрытия записи политики, если это содержит какие-либо псевдонимы SignedBy, которые еще не существуют в Вашем keystore. Выберите OK и запишите, чтобы создать такой псевдоним, или отредактировать запись политики, чтобы фиксировать псевдоним, если было неправильным.
Чтобы отредактировать существующую запись политики, выберите строку для той записи в основном окне "Средства осуществления политики", затем нажмите кнопку Edit Policy Entry. Альтернативно, можно просто дважды щелкнуть по строке для той записи.
Это переводит тот же самый тип в рабочее состояние "диалогового окна" Записи Политики, как появляется, когда Вы добавляете, что новая запись политики, кроме в этом случае диалогового окна заполнена в существующей информацией о записи политики. Чтобы изменить информацию, просто перепечатайте это (для значений CodeBase и SignedBy) или используйте кнопки (для Принципалов и значений Полномочий).
Когда Вы делаетесь, нажимаете кнопку Done (или Отмена к отмене).
Чтобы удалить запись политики из файла политики, выберите строку для той записи в основном окне "Средства осуществления политики", затем нажмите кнопку Remove Policy Entry.
Полная запись политики выводится на экран, и можно тогда или выбрать OK, чтобы удалить запись, или Отмену, чтобы сохранить ее.
Чтобы сохранить изменения к существующему файлу политики, просто выберите команду Save в меню File.
Чтобы сохранить новый файл политики, Вы создавали, или скопировать существующий файл политики в новый файл политики с другим именем, выберите команду Save As из меню File. Это переводит Сохранение в рабочее состояние Как диалоговое окно.
Переместитесь по структуре каталогов, чтобы добраться до каталога, в котором Вы хотите сохранить файл политики. Введите требуемое имя файла, затем выберите кнопку OK. Файл политики теперь сохранен, и его имя и путь показывают в текстовом поле маркированный "Файл Политики:"
Чтобы выйти из Средства осуществления политики, выберите Команду выхода из меню File.
Если Средство осуществления политики когда-либо сообщает, что предупреждения были сохранены в Предупреждении Журнала, можно просмотреть журнал, выбирая команду View Warning Log в меню File.
Например, если у Вас будет файл политики с URL Keystore, определяющим keystore, который еще не существует, то Вы получите такое предупреждение неоднократно, например, когда Вы откроете файл. Можно продолжать работать над файлом политики, даже если предупреждения существуют.
Следующие примеры показывают как
Первоначально, нет никакого пользовательского файла политики (если Вы не создали тот вручную). Так создать пользовательский файл политики, сначала просто запустите Средство осуществления политики, вводя следующее в командной строке.
policytool
Это переводит окно "Средства осуществления политики" в рабочее состояние.
Всякий раз, когда Средство осуществления политики запускается, оно пытается заполнить это окно с информацией о политике от того, что иногда упоминается как "пользовательский файл политики". Пользовательский файл политики является по умолчанию названным файлом .java.policy
в Вашем корневом каталоге. Если Средство осуществления политики не может найти пользовательский файл политики, оно сообщает о ситуации и выводит на экран пустое окно "Средства осуществления политики" (то есть, окно с заголовками и кнопки, но никакие данные в этом):
Можно теперь создать пользовательский файл политики, добавляя записи и сохранив файл.
Предположите, что Вы хотите предоставить все классы от /tests/
разрешение каталога, чтобы считать названный файл mydata
в /temp/data/
каталог. Чтобы сделать так, сначала нажмите кнопку Add Policy Entry в основном окне "Средства осуществления политики".
Это переводит "диалоговое окно" Записи Политики в рабочее состояние:
Используя это диалоговое окно, введите файл URL
file:/tests/
в текстовое поле CodeBase.
Оставьте пробел текстового поля SignedBy, так как Вы не требуете, чтобы код был подписан.
Оставьте незаполненный список Принципалов, так как Вы не требуете, чтобы код аутентифицировался.
Чтобы добавить разрешение, нажмите кнопку Add Permission. Это переводит диалоговое окно "Полномочий" в рабочее состояние:
Добавить разрешение:
/temp/data/mydata
Теперь диалоговое окно "Разрешения" похоже на следующее:
Когда Вы делаетесь, определяя информацию о разрешении, выберите кнопку OK. Новое разрешение появляется в строке в "диалоговом окне" Записи Политики.
Вы теперь делаетесь, определяя эту запись политики, так нажмите кнопку Done. Окно "Средства осуществления политики" теперь содержит строку, представляющую запись политики. Строка только содержит значение CodeBase:
Предположите, что Вы также хотите предоставить любой код от URL "http://java.sun.com/" и подписанный псевдонимом доступ для чтения "герцога" ко всем файлам в /tmp/
каталог. Предположите, что Вы также хотите дать такое разрешение кода, чтобы инициировать исходящие сокетные соединения с любыми узлами. Вы должны сделать две вещи:
Чтобы определить keystore, содержащий ключевую информацию для псевдонимов, определенных в любых частях SignedBy записей политики, выберите Команду редактирования в меню Keystore основного окна "Средства осуществления политики".
Это переводит в рабочее состояние диалоговое окно, в котором Вы определяете новый keystore URL и дополнительно тип keystore.
Как пример, чтобы определить keystore, названный "mykeystore" в /tests/
каталог, введите следующий file:
URL в текстовое поле маркированный "Новый KeyStore URL":
file:/tests/mykeystore
Если тип keystore является типом по умолчанию, как определено "keystore.type" значением свойства в файле свойств безопасности, Вы не должны ввести "Новое значение" Типа KeyStore. Значение по умолчанию того свойства является "JKS" (собственный тип keystore, поддерживаемый Sun Microsystems).
Чтобы определить тип keystore, введите его значение в текстовое поле маркированный "Новый Тип KeyStore." Например, чтобы указать, что тип keystore является типом "JKS"
JKS
Результат:
Когда Вы делаетесь, определяя keystore URL и тип, выберите OK. Текстовое поле маркированный "Keystore:" теперь заполнено в URL и типом.
Затем, Вы должны определить запись политики:
Нажмите кнопку Add Policy Entry в основном окне "Средства осуществления политики". Это переводит "диалоговое окно" Записи Политики в рабочее состояние. Введите следующее в текстовое поле CodeBase:
http://java.sun.com/*
"*" указывает, что и класс и файлы JAR в указанном каталоге, как должны полагать, соответствуют этот CodeBase.
Теперь, введите следующий псевдоним в текстовое поле SignedBy:
duke
Оставьте незаполненный список Принципалов, так как Вы не требуете, чтобы код аутентифицировался.
Чтобы добавить первое разрешение, нажмите кнопку Add Permission. Это переводит диалоговое окно "Полномочий" в рабочее состояние. Сделайте следующий
/tmp/
каталог: /tmp/*
Теперь диалоговое окно "Полномочий" похоже на следующее:
Выберите кнопку OK. Новое разрешение появляется в строке в "диалоговом окне" Записи Политики.
Теперь Вы должны добавить другое разрешение. Нажмите кнопку Add Permission. В диалоговом окне "Полномочий" сделайте следующий
*
Теперь диалоговое окно "Полномочий" похоже на следующее:
Выберите кнопку OK. Новое разрешение появляется в строке в "диалоговом окне" Записи Политики.
Вы теперь делаетесь, определяя эту запись политики, так нажмите кнопку Done в "диалоговом окне" Записи Политики. Окно "Средства осуществления политики" теперь содержит строку, представляющую запись политики, показывая CodeBase, SignedBy и значениям Принципалов.
Предположите, что Вы хотите предоставить принципал, имя X500 которого
CN=Duke,OU=JavaSoft,O=Sun Microsystems,C=US
разрешение, чтобы записать в /tmp/
каталог.
Нажмите кнопку Add Policy Entry в основном окне "Средства осуществления политики". Это переводит "диалоговое окно" Записи Политики в рабочее состояние.
Оставьте пробел текстового поля CodeBase, так как Вы не ограничиваете, куда код прибывает из.
Оставьте пробел текстового поля SignedBy, так как Вы не требуете, чтобы код был подписан.
Нажмите кнопку Add Principal. В диалоговом окне "Принципалов" сделайте следующий
CN=Duke,OU=JavaSoft,O=Sun Microsystems,C=US
Теперь диалоговое окно "Принципалов" похоже на следующее:
Выберите кнопку OK. Новый принципал появляется в строке в списке "Принципалов".
Чтобы добавить разрешение, нажмите кнопку Add Permission. Это переводит диалоговое окно "Полномочий" в рабочее состояние. Сделайте следующий
/tmp/
каталог: /tmp/*
Выберите кнопку OK. Новое разрешение появляется в строке в "диалоговом окне" Записи Политики.
Вы теперь делаетесь, определяя эту запись политики, так нажмите кнопку Done в "диалоговом окне" Записи Политики. Окно "Средства осуществления политики" теперь содержит строку, представляющую запись политики, показывая CodeBase, SignedBy и значениям Принципалов.
Давайте предполагать, что Вы хотите сохранить файл политики, который Вы создавали с именем по умолчанию (.java.policy) в расположении по умолчанию (Ваш корневой каталог).
Чтобы сохранить пользовательский файл политики, выберите команду Save As из меню File. Это переводит Сохранение в рабочее состояние Как диалоговое окно.
Переместитесь по структуре каталогов, чтобы добраться до Вашего корневого каталога. Ввести
.java.policy
(отметьте начальный период) как имя файла, затем выберите кнопку OK. Файл политики теперь сохранен, и его имя и путь показывают в текстовом поле маркированный "Файл Политики:".
Когда Вы хотите выйти из Средства осуществления политики, сделайте так, выбирая Команду выхода из меню File.