Trabajo en Red

Toda aplicaci�n Java puede tener su propio objeto controlador de seguridad que act�a como un guardia de seguridad a tiempo completo. La clase SecurityManager del paquete java.lang es una clase abstracta que proporciona el interface de programaci�n y una implementaci�n parcial para todos los controladores de seguridad de Java.

Por defecto una aplicaci�n no tiene controlador de seguridad. Esto es, el sistema de ejecuci�n de Java no crea autom�ticamente un controlador de seguridad para cada aplicaci�n. Entonces, por defecto, una aplicaci�n permite todas las operaciones que est�n sujetas a las restricciones de seguridad.

Para cambiar este comportamiento indulgente, una aplicaci�n debe crear e instalar su propio controlador de seguridad. Aprender�s como crear un controlador de seguridad en Escribir un Controlador de Seguridad, y como instalarlo en Instalar un Controlador de Seguridad.

Nota:

Los navegadores existentes y los visualizadores de applets crean su propio controlador de seguridad cuando arrancan. As�, un applet est� sujeto a las restricciones de acceso siempre que sean impuestas por el controlador de seguridad de una aplicaci�n particular en la que el applet se est� ejecutando.

Puedes obtener el controlador de seguridad actual de una aplicaci�n utilizando el m�todo getSecurityManager() de la clase System.

SecurityManager appsm = System.getSecurityManager();

Observa que getSecurityManager() devuelve null si no hay ning�n controlador de seguridad actual en la aplicaci�n por lo que deber�a asegurarse de que tiene un objeto v�lido antes de llamar a cualquiera de sus m�todos.

Una vez que tienes el controlador de seguridad, puedes pedir permiso para permitir o prohibir ciertas operaciones. De hecho, muchas de las clases en los paquetes de Java hacen esto. Por ejemplo, el m�todo System.exit(), que finaliza el interprete Java, utiliza el m�todo checkExit() del controlador de seguridad para aprobar la operaci�n de salida.

SecurityManager security = System.getSecurityManager();
if (security != null) {
    security.checkExit(status);
}
. . .
// El c�digo contin�a aqu� si  checkedExit() retorna

Si el controlador de seguridad aprueba la operaci�n de salida, el checkExit() retorna normalmente. Si el controlador de seguridad prohibe la operaci�n, el checkExit() lanza una SecurityException. De esta forma, el controlador de seguridad permite o prohibe una operaci�n potecialmente da�ina antes de que pueda ser completada.

La clase SecurityManager define muchos otros m�todos utilizados para verificar otras clases de operaciones. Por ejemplo, el m�todo checkAccess() verifica los accesos a los threads, y checkPropertyAccess() verifica el acceso a la propiedad especificada. Cada operaci�n o grupo de operaciones tiene su propio m�todo checkXXX().

Adem�s, el conjunto de m�todos checkXXX() representa el conjunto de operaciones de las clases de los paquetes Java y el sistema de ejecuci�n de Java que ya est�n sujetos a la protecci�n del controlador de seguridad. Por eso, normalmente, su c�digo no tendr� que llamar a ning�n m�todo checkXXX() -- las clases de los paquetes de Java hacen esto por usted a un nivel lo suficientemente bajo que cualquier operaci�n representada por un m�todo checkXXX() ya est� protegida. Sin embargo, cuando escribas tu propio controlador de seguridad, podr�as tener que sobreescribir los m�todos checkXXX() de SecurityManager para modificar la pol�tica de seguridad de las operaciones espec�ficas, o podr�a tener que a�adir algunos por ti mismo para poner otras clases de operaciones para el escurtinio del controlador de seguridad.

Decidir los M�todos a Sobreescribir de SecurityManager explica las operaciones o grupos de operaciones que cada m�todo checkXXX() de la clase SecurityManager est� dise�ado para proteger.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP