Проблема с использованием подписанного апплета с файлом политики - PullRequest
1 голос
/ 03 марта 2011

У меня проблема с записями .java.policy для моего апплета.

Я бы попытался создать папки и файлы с помощью апплета.Я уже подписал свой jar-файл и добавил в файл $ {user.home} /. Java.policy следующие строки:

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

с этими добавленными строками, мой апплет работает отлично, , ноэто не очень хороший стиль, потому что каждый jar в любом месте тоже становится правами доступа к файлу .

. На страницах оракула приведены примеры установки codeBase для указанного applet.jar и установки signatureBy (псевдоним, на который jar-файл подписан) с большими разрешениями.

Я пробовал это много раз, но это не работает.

Код, который я пробовал:

grant codeBase "http://www.wkmovies.de/appletDemo/-" {
  permission java.io.FilePermission "<<ALL FILES>>", "read";
  permission java.io.FilePermission "<<ALL FILES>>", "write";
};

или

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

Я загрузил этот пример в: www.wkmovies.de / appletDemo / index.html

Как я могунастроить файл политики, чтобы мой апплет работал?


Здесь мой код отрывается: HTML:

<a href="javascript:document.applet1.createFolder();">
  Create Folder at C:\\Temp
</a>
<applet name="applet1" id="applet1" width="0" height="0" alt=""
  archive="applets/Demo.jar,applets/lib/commons-lang-2.4.jar" 
  code="demo.FolderCreator.class">
</applet>

Класс FolderCreator:

try {
  File f = new File("C:\\temp");
  f.mkdir();
  JOptionPane.showMessageDialog(null, "folder created",
    "successfull", JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
  e.printStackTrace();
  JOptionPane.showMessageDialog(null, e.getMessage(),
    e.getClass().getName(), JOptionPane.ERROR_MESSAGE);
}

(JDK1.6.0_23, Firefox 3.0.19, WinXP 32bit)

1 Ответ

0 голосов
/ 03 марта 2011

Попробуйте привилегированный API: http://download.oracle.com/javase/1.4.2/docs/guide/security/doprivileged.html

...