У меня есть некоторый более старый код, который не использует SecurityManager, но действительно использует RMI. Из того, что я читал, RMI требует менеджера безопасности, но код, кажется, работает и хорошо работает на той же машине и между двумя машинами. Я протестировал этот материал на 1,5, но не на 1,6.
Я не могу найти ресурс, которые обсуждают, когда SecurityManager требуется и когда это не, или если то требование, измененное с Версиями Java.
Я собираюсь обновить код для использования один, я просто хотел понять детали позади него.
Спасибо за любую обратную связь!
Диспетчер безопасности нужен только в том случае, когда RMI загружает код с удаленной машины. Если и клиент, и сервер используют одни и те же классы, в этом нет необходимости.
Из Учебник RMI :
Менеджер безопасности определяет, имеет ли загруженный код доступ к локальной файловой системе или может ли он выполнять любые другие привилегированные операции.
Если программа RMI не устанавливает диспетчер безопасности, RMI не будет загружать классы (кроме как из локального пути к классам) для объектов, полученных в качестве аргументов или возвращаемых значений вызовов удаленных методов. Это ограничение гарантирует, что операции, выполняемые загруженным кодом, регулируются политикой безопасности.