Возникли проблемы при работе политики безопасности RMI - PullRequest
0 голосов
/ 09 сентября 2010

У меня проблемы с настройкой политик безопасности RMI.У меня есть файл .policy как на сервере, так и на клиенте, на каждом из которых запущен SecurityManager.

Когда я пытаюсь запустить клиент, происходит сбой.Мой файл политики предоставляет все атм.Вот содержимое:

grant { permission java.security.AllPermission };

У меня есть файл client.policy в корневом каталоге моего JAR-файла (я тоже пытался запустить его с файлом политики вне jar-файла).Затем я запускаю клиент с этим:

java -jar PagePlanner.jar -Djava.security.policy=client.policy -Djava.rmi.codebase=http://192.168.0.88:2077/home/me/NetbeansProjects/PageServer/dist/PageServer.jar -Djava.security.debug=access

Указывая мой файл политики и путь к моей базе кода.Я не уверен, что любой из них правильный.Я также попытался установить переключатель отладки, когда я где-то читал, это должно дать мне дополнительную информацию о том, что идет не так, но, похоже, это не имеет значения. Вот вывод, когда я запускаю клиент:

Exception in thread "main" java.security.AccessControlException: access denied (java.awt.AWTPermission setWindowAlwaysOnTop)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
    at java.security.AccessController.checkPermission(AccessController.java:546)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    at java.awt.Window.setAlwaysOnTop(Window.java:2038)
    at gui.LoginForm.<init>(LoginForm.java:59)
    at main.Main.main(Main.java:21)

С какого момента клиент просто зависает.Есть идеи, что я здесь делаю не так?Настройка политики на стороне сервера почти такая же.Я могу опубликовать детали, если это поможет.

Приветствия.

1 Ответ

0 голосов
/ 10 сентября 2010

Запустите клиент с -Djava.security.debug = доступ, ошибка. Скорее всего, ваш файл .policy не найден.

Кстати, вам не нужно устанавливать кодовую базу на клиенте, если у клиента нет собственных реализаций абстрактных классов / интерфейсов и сервер не знает о них. Кодовая база обычно устанавливается только на сервере, чтобы аннотировать классы, которые загружаются на клиент и в Реестр.

...