Загрузка файла GWT java.security.AccessControlException: доступ запрещен (java.io.FilePermission - PullRequest
2 голосов
/ 08 марта 2011

У меня есть сервлет загрузки файлов, и я пытаюсь сохранить некоторые файлы как:

try{
    File uploadedFile = new File(UPLOAD_DIRECTORY + fileName);
    File uploadedFile = new File("/"+fileName);
    item.write(uploadedFile);
}
catch (Exception e) {
    e.printStackTrace();
}

После этого я получаю следующую ошибку:

java.security.AccessControlException: access denied (java.io.FilePermission /untitled.html write)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
    at java.security.AccessController.checkPermission(AccessController.java:546)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)

Как я могу это исправить?

1 Ответ

2 голосов
/ 08 марта 2011

Вы можете либо сделать / доступным для записи вашим сервером приложений (что не кажется мне хорошей идеей), либо сохранить загруженные файлы в другом доступном для записи месте.

File uploadedFile = new File(UPLOAD_DIRECTORY + fileName);
File uploadedFile = new File("/"+fileName);

Вы также появляетесьпытаться объявить uploadedFile дважды.Исходя из ошибки, похоже, что либо UPLOAD_DIRECTORY равно /, либо вы фактически используете вторую строку.Возможно, вам просто нужно указать правильное местоположение в UPLOAD_DIRECTORY?

Чтобы ответить на ваш комментарий-вопрос о файлах политики Java:

С Безопасность и разрешения на Java.sun.com:

Существует один файл политики для установки на платформу Java (система) и необязательный файл политики для каждого пользователя.Файл системной политики находится в {java.home} /lib/security/java.policy, а файл пользовательской политики находится в домашнем каталоге каждого пользователя.Файлы системной и пользовательской политики объединяются.Так, например, может быть файл системной политики с очень небольшим количеством разрешений, предоставленных всем пользователям в системе, и отдельные файлы политик, предоставляющие дополнительные разрешения определенным пользователям.

См. Разрешение для файлов раздел для установки разрешений файловой системы в файле политики.

И, повторяя мой собственный комментарий, вы также захотите обратить внимание на разрешения файловой системы в ОС, контроль над которыми будет зависеть отОС вы используете.

...