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
Publicar un comentario