Java RMI без SecurityManager - PullRequest
       4

Java RMI без SecurityManager

5 голосов
/ 19 февраля 2010

У меня есть старый код, который не использует SecurityManager, но использует RMI.Из того, что я прочитал, RMI требует менеджера безопасности, но код, кажется, работает и отлично работает на одной машине и между двумя машинами.Я протестировал этот материал на 1.5, но не на 1.6.

Я не могу найти ни одного ресурса, который обсуждает, когда требуется SecurityManager, а когда нет, или изменилось ли это требование с помощью версий Java.

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

Спасибо за любые отзывы!

1 Ответ

7 голосов
/ 19 февраля 2010

Менеджер безопасности необходим только в том случае, если RMI загружает код с удаленного компьютера.Если и клиент, и сервер используют одни и те же классы, это не нужно.

Из Руководство по RMI :

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

Если программа RMI не устанавливает менеджер безопасности, RMI не будет загружать классы (кроме как из локального пути классов) для объектов, полученных в качестве аргументов, или возвращать значения удаленных вызовов методов.Это ограничение гарантирует, что операции, выполняемые загруженным кодом, подпадают под политику безопасности.

...