Системное свойство и, следовательно, работая с привилегиями, вы можете переопределить метод SecurityManager.checkPropertyAccess, чтобы всегда выдавать исключение SecurityException, тогда никакие привилегии и свойства не позволят коду установить свойство.

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

В частности, я хотел бы ограничить ...

Файл читаетФайл пишетСоздание файлаУдаление файла

... так, что они могут быть сделаны только в текущем рабочем каталоге для всех, кроме неограниченных классов.

Попытка SecurityManager:
Я попытался реализовать подкласс класса SecurityManager, который реализует это поведение, однако, кажется, что при выполнении проверокфайл предоставленная информация не дает больше, чем просто имя файла (разве я что-то упустил?).

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

Попытка на основе политики:
Мне также известно, что политики Java предназначены для ограничения действий классов, включая такие вещи, как файловые операции. Тем не менее, я действительно изо всех сил пытался найти хороший ресурс, чтобы узнать, как я мог бы решить свои проблемы с помощью.policy файл.

Обобщение вопроса:

1) Есть ли альтернативные подходы, которые могут быть предпочтительнее тех, что я упомянул?

2) Возможно ли это с помощью SecurityManager? Я пропускаю то, как я должен фактически реализовать такой подход?

3) Возможно ли это с помощью файла политики? Есть ли хорошие ресурсы, которые я пропустил на этом фронте?

Я действительно не обращаю внимания на какую-то тяжелую работу, которую мне нужно вкладывать в достижение этой цели - я просто не уверен, как мне следует подходить к ней должным образом. Мне также очень не хватает хороших ресурсов, чтобы достаточно подробно рассказать о двух возможных подходах, которые я упомянул, и позволить мне реализовать их самостоятельно. Прежде всего, я не боюсь значительного чтения там, где это необходимо!

Спасибо За любую помощь, которую вы можете оказать, заранее.

Ответы на вопрос(1)

Ваш ответ на вопрос