Проблема:
В моем приложении Java (а не в апплете) я хочу ограничить некоторые операции с файлами для всех классов, кроме списка/группы/пакета классов, которые не должны быть ограничены.
В частности, я хотел бы ограничить...
- Файл читает
- Запись файла
- Создание файла
- Удаление файла
..., так что они могут выполняться только в текущем рабочем каталоге для всех, кроме неограниченных классов.
Ошибка SecurityManager:
Я попытался реализовать подкласс класса SecurityManager, который реализует это поведение, однако кажется, что при проверке делается информация о файле не дает больше, чем просто имя файла (если только я что-то не пропускаю?).
Кроме того, я не совсем понимаю, как в этом случае я мог узнать класс, из которого выполняется вызов, чтобы разрешить мне разрешить операцию или выбросить исключение. Есть ли способ получить всю необходимую информацию для этого подхода?
Политическая попытка:
Я также знаю, что политики Java предназначены для ограничения действий классов, включая такие вещи, как операции с файлами. Тем не менее, я действительно изо всех сил пытался найти хороший ресурс, чтобы узнать, как я могу решить свои проблемы с помощью файла .policy.
Суммирование вопроса:
1) Есть ли альтернативные подходы, которые могут быть предпочтительнее тех, о которых я говорил?
2) Возможно ли это с помощью SecurityManager? Я пропустил вопрос о том, как я должен реально применять такой подход?
3) Возможно ли использование файла политики? Есть ли хорошие ресурсы, которые я пропустил на этом фронте?
На самом деле я не против какой-либо тяжелой работы, которую мне нужно инвестировать в достижение этого. Я просто не уверен, как правильно подойти к ней. Мне также очень не хватает хороших ресурсов, чтобы учить меня достаточно о двух возможных подходах, о которых я упомянул, чтобы я мог сам реализовать это. Прежде всего, я не боюсь значительного чтения, когда это требуется!
Спасибо за любую помощь, которую вы можете дать заранее.