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