2010-02-19 21 views
5

Tengo un código anterior que no utiliza un SecurityManager pero sí utiliza RMI. Por lo que he leído, RMI requiere un administrador de seguridad, pero el código parece funcionar y funcionar correctamente en la misma máquina y entre dos máquinas. He probado esto en 1.5, pero no en 1.6.Java RMI sin SecurityManager

No encuentro ningún recurso que debata cuándo se requiere un SecurityManager y cuándo no, o si ese requisito cambió con las versiones de Java.

Voy a actualizar el código para usar uno, solo quería entender los detalles detrás de él.

¡Gracias por cualquier comentario!

Respuesta

7

El administrador de seguridad es necesario solo en el caso en que RMI descargue código desde la máquina remota. Si tanto el cliente como el servidor usan las mismas clases, no es necesario.

De RMI Tutorial:

Un gestor de seguridad determina si el código descargado tiene acceso al sistema de archivos local o puede realizar otras operaciones privilegiadas.

Si un programa RMI no instala un administrador de seguridad, RMI no descargará clases (que no sean de la ruta de clase local) para objetos recibidos como argumentos o valores devueltos de invocaciones de métodos remotos. Esta restricción garantiza que las operaciones realizadas por el código descargado estén sujetas a una política de seguridad.

Cuestiones relacionadas