2009-09-12 3 views
0

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

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

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

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

ответ

0

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

+0

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

1

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

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; 
    } 
} 
});