Java RMI без SecurityManager

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

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

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

Спасибо за любую обратную связь!

5
задан Andrew Mellinger 19 February 2010 в 19:04
поделиться

1 ответ

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

Из Учебник RMI :

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

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

7
ответ дан 14 December 2019 в 08:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: