Я пытаюсь загрузить класс через URLClassLoader (ну, он также не работает с обычным загрузчиком классов) и хочу, чтобы у них не было никакого разрешения.
Поэтому я создал свой собственный менеджер безопасности, который генерирует ключ при запуске, который может быть запрошен только один раз (в основном потоке).
Менеджер безопасности имеет 2 списка: applicationThread, которому будут предоставлены любые права, и временный список, которому будет предоставлено одно право только один раз (речь идет об отражении).
Поскольку это очень сложно описать, я решил загрузить все это: посмотрите на ссылку ниже
Хорошо, возвращаюсь: я создал поток WatchDog, который проверяет, не занимает ли поток слишком много времени.
Когда я сейчас начинаю копировать два класса из URLClassLoader, я вызываю ровно 30 методов без каких-либо ошибок, но при 31-м вызове он пытается проверить Разрешения для следующего, но это просто радует после 30-го вызова.
java.lang.RuntimePermission accessClassInPackage.sun.reflect),
Кто-нибудь знает, что там происходит?
редактировать:
У меня было время разобрать пример.
http://myxcode.at/securitymanager.zip
Я обнаружил, что SecurityManager не запрашивается синхронно. Просто запустите этот маленький кусочек кода и посмотрите на красные линии.
Если красные линии появятся в самой первой строке, просто запустите программу еще раз, вы обнаружите, что она кажется немного неконтролируемой.
Проблема более или менее в том, что мне нужен менеджер безопасности для синхронизации.
Вот мой вывод для тех, кто не может столкнуться с ошибкой (ошибка?)
http://pastebin.com/E9yLRLif
edit2: может, речь идет о консоли? может консоль слишком медленная?