Podr�as tener que sobreescribir varios m�todos checkXXX() del SecurityManager dependiendo de las operaciones a las que quieras que el controlador de seguridad les imponga restrcciones.
La primera columna de la siguiente tabla son objetos sobre los que se pueden realizar varias operaciones. La segunda columna lista los m�todos de SecurityManager que aprueban las operaciones de los objetos de la primera columna.
| Operaciones sobre | Aprobadas por |
| sockets | checkAccept(String host, int port)
checkConnect(String host, int port) checkConnect(String host, int port, Object executionContext) checkListen(int port) |
| threads | checkAccess(Thread thread)
checkAccess(ThreadGroup threadgroup) |
| class loader | checkCreateClassLoader() |
| sistema de ficheros | checkDelete(String filename)
checkLink(String library) checkRead(FileDescriptor filedescriptor) checkRead(String filename) checkRead(String filename, Object executionContext) checkWrite(FileDescriptor filedescriptor) checkWrite(String filename) |
| comandos del sistema | checkExec(String command) |
| interprete | checkExit(int status) |
| paquete | checkPackageAccess(String packageName)
checkPackageDefinition(String packageName) |
| propiedades | checkPropertiesAccess()
checkPropertyAccess(String key) checkPropertyAccess(String key, String def) |
| networking | checkSetFactory() |
| windows | checkTopLevelWindow(Object window) |
Dependiendo de tu pol�tica de seguridad, puedes sobreescribir algunos o todos estos m�todos. Por ejemplo, sup�n que est�s escribiendo un Navegador Web o un visualizador de applets y quieres evitar que los applets utilicen sockets. Puedes hacer esto sobreescribiendo los cuatro m�todos que afectan al acceso a los sockets.
Muchos de los m�todos checkXXX() son llamados en m�ltiples situaciones. Ya viste esto cuando escribimos el PasswordSecurityManager en Escribir un Controlador de Seguridad -- el m�todo checkAccess(ThreadGroup g) es llamado cuando se crea un ThreadGroup, selecciona su estado de servicio, lo para, etc. Cuando sobreescribas un m�todo checkXXX() asegurate de que comprendes todas las situaciones en las que puede ser llamado.
La implementaci�n por defecto suministrada por la clase SecurityManager para todos los m�todos checkXXX() es.
public void checkXXX(. . .) {
throw new SecurityException();
}
La mayor�a de las veces querr�a que haga algo m�s selectivo que prohibirlo todo! Por eso podr�as encontrar que debes sobresscribir todos los m�todos checkXXX() de SecurityManager.