Actualmente, todo el código del sistema del JDK invoca métodos del Gestor de seguridad para determinar la politica de seguridad activa y realizar verificaciones de control de acceso.
Por defecto, cuando se ejecutan applets siempre se
carga una implementación del gestor de seguridad, pero cuando se
lanzan aplicaciones esto no es así. Si el usuario desea que se
instale uno debe invocar la máquina virtual definiendo la
propieda java.security.manager
:
java -Djava.security.manager NomApp
o la aplicación debe invocar el método
setSecurityManager
de la clase
java.lang.System
para instalar un gestor.
Si se le asigna valor a la propiedad
java.security.manager
se instalará el gestor de
seguridad especificado:
java -Djava.security.manager=iti.GestorSeguridad NomApp
Un aspecto muy importante del gestor de seguridad es que una vez cargado no se puede reemplazar, de modo que ni las applets ni las aplicaciones pueden instalar el suyo cuando el usuario (applicaciones) o el sistema (applets) ya han cargado uno.
Por último hay que señalar que el gestor de seguridad está muy
relacionado con la clase AccessControler
: la clase
SecurityManager
representa el concepto de un punto
central de control de acceso, mientras que la clase
AccessControler
implementa un algoritmo concreto de
control de acceso con características especiales como el método
doPrivileged()
.
En versiones del JDK anteriores a la 1.2, los programadores
redefinian el gestor de seguridad cuando necesitaban métodos de
control de acceso específicos, pero ahora el método adecuado
para hacer esto es emplear el AccessController
.