Как предоставить разрешение апплета для доступа к ресурсу, в котором он нуждается? - PullRequest
0 голосов
/ 12 сентября 2009

У меня есть проблема с определением прав доступа для моего апплета, который мог бы использовать пространственный доступ к ресурсам, например, получить свойство user.name или команду файловой системы, такую ​​как создание, чтение, запись каталога или файлов ...

апплет должен записывать любые данные -ex. images - полученные из веб-приложения в таких файлах во временном каталоге с использованием user.name для создания папки для этих ...

Я хочу подписать апплет и дать ему разрешение, чтобы каждый клиент, который запускает мой апплет, разрешил ему доступ к ресурсам, который мне нужен, как я могу это сделать? это возможно?

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

Ответы [ 2 ]

1 голос
/ 15 сентября 2009

Как только ваш апплет подписан, любой код, которому требуются разрешения на доступ к файлам, должен быть помещен в привилегированный блок следующим образом.

final String location = locationVal;

File f = (File) AccessController.doPrivileged(new PrivilegedAction()
{
public Object run()
{
  System.out.println("Getting File : " + location);
  File outputFile1 = new File(location);
  return outputFile1;
}
});

Для получения системного свойства вам нужно снова использовать привилегированный блок. Что-то вроде этого.

String javaVersion = (String) AccessController.doPrivileged(new PrivilegedAction()
{
    public Object run()
    {
        try
        {
            return System.getProperty("java.version");
        } 
        catch (Exception e)
        {
        System.out.println("Exception caught:" + e.toString());
    return null;
    }
}
});
0 голосов
/ 12 сентября 2009

С 6u10, без подписи вы можете использовать FileSaveService , чтобы разрешить сохранение файлов под контролем пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...