Файл .java.policy и локальный апплет - PullRequest
3 голосов
/ 23 мая 2011

Я работаю над страницей HTML, которая использует Javascript для взаимодействия с апплетом Java.HTML-страница, файлы javascript и файл .jar для апплета будут развернуты локально в папке в файловой системе пользователя.

(В данном случае это не отдельное приложение Java; по разным причинам яне буду здесь объяснять).

Апплет должен делать локальный файл ввода / вывода.Поэтому я пытаюсь настроить параметры в файле .java.policy пользователя, чтобы разрешить это.

Я обнаружил, что единственная, которая работает, - это следующая настройка:

grant 
{
  permission java.io.FilePermission "<<ALL FILES>>", "read";
  permission java.io.FilePermission "<<ALL FILES>>", "write";
};

Это не идеально, так как он предоставляет всем апплетам разрешения на чтение и запись всех файлов.Естественно, я бы предпочел выделить для конкретной базы кода.Однако я не смог найти синтаксис «grant codeBase», который работает.

Я пытался:

grant codeBase "file:/C:/Files/FileIOApplet/-" {
  permission java.io.FilePermission "<<ALL FILES>>", "read";
  permission java.io.FilePermission "<<ALL FILES>>", "write";
};

grant codeBase "file:///-" {
  permission java.io.FilePermission "<<ALL FILES>>", "read";
  permission java.io.FilePermission "<<ALL FILES>>", "write";
};

grant codeBase  "file:${user.home}/-"
{
  permission java.io.FilePermission "<<ALL FILES>>", "read";
  permission java.io.FilePermission "<<ALL FILES>>", "write";
};

Это выполняется с использованием этой конфигурации:

  • Firefox3.6.10
  • Java 1.6 обновление 25
  • Windows 7 64 бит

Где я ошибаюсь при настройке этого файла .java.policy?

Я довольно придирчив к миру Java, особенно работаю с апплетами - так что ваши знания приветствуются!

Ответы [ 2 ]

4 голосов
/ 06 октября 2012

Для подключения апплета с доступом здесь есть настройки инструмента политики:

Перейдите в policyTool, вы найдете его по следующему пути:

java->jdk1.3->bin->policyTool Application

Появляется окно инструмента политики.
В окне инструмента политики нажмите кнопку «Добавить элемент политики». Это приведет вас к окну ввода политики

Там введите CodeBase как "файл: / путь вашего Java-бина". Например

CodeBase   file:/c:/java/jdk1.3/bin/

Теперь нажмите кнопку «Добавить разрешение» в окне ввода политики.
Вы попадете в окно «Разрешения»

Там Выберите «Все права» в раскрывающемся списке прав.
И нажмите "ОК".

Теперь снова нажмите кнопку «Добавить разрешение» в окне ввода политики.

Теперь выберите «Выберите« RunTimepermission »в раскрывающемся списке разрешений. Теперь в раскрывающемся списке «Имя цели» выберите «accessClassInpackage», в текстовом поле введите accessClassInpackage.sun.jdbc.odbc

Теперь нажмите "ОК".

Теперь нажмите «Готово» в окне «Ввод политики».

Теперь в файле окна ввода политики-> сохранить Сохраните его в «bin» вашей установки Java. Помни имя... например сказать .. appletpermission 'Сохранить'

Теперь у вас есть созданный файл политики для доступа

Теперь для компиляции вашего Java-файла в командной строке

javac programname.java

Чтобы запустить вашу программу, введите в командной строке следующее:

appletviewer -J-Djava.security.policy=appletpermission programname.java

Теперь все сделано.

0 голосов
/ 24 июня 2011

не тратьте время на синтаксис, используйте вместо этого инструмент политики:

нажмите здесь: инструмент политики

...