Aplicación del control de acceso | Java

El tiempo de ejecución de Java realiza un seguimiento de la secuencia de llamadas de Java que se realizan a medida que se ejecuta un programa. Cuando se solicita acceso a un recurso protegido, toda la pila de llamadas, de forma predeterminada, se evalúa para determinar si se permite el acceso solicitado.

Los recursos están protegidos por SecurityManager. El código sensible a la seguridad en el JDK y en las aplicaciones protege el acceso a los recursos mediante un código como el siguiente:
SecurityManager sm = System.getSecurityManager();
if (sm != null) {
    sm.checkPermission(perm);
}
El objeto Permission perm corresponde al acceso solicitado. Por ejemplo, si se intenta leer el archivo /tmp/abc, el permiso se puede construir de la siguiente manera:
Permission perm = new java.io.FilePermission("/tmp/abc", "read");
La implementación predeterminada de SecurityManager delega su decisión a la implementación java.security.AccessController. La AccessController atraviesa la pila de llamadas, pasando a la seguridad instalada Policy de cada elemento de código en la pila, junto con el permiso solicitado (por ejemplo, el FilePermission del ejemplo anterior). El Policy determina si se concede el acceso solicitado, en función de los permisos configurados por el administrador. Si no se concede el acceso, AccessController lanza un java.lang.SecurityException.

Comentarios

Entradas populares