2010-03-23 7 views
5

¿Hay alguna otra implementación (por ejemplo, en un proyecto OSS) de un Java SecurityManager disponible que tenga más características que la del JDK?¿Hay otras implementaciones de SecurityManager disponibles?

Busco características como

  • configurable en tiempo de ejecución
  • políticas actualizable en tiempo de ejecución, lectura de otras fuentes de datos que un archivo security.policy
  • Tema-conscientes, por ejemplo, diferentes políticas por subproceso
  • Políticas de nivel superior, p. ej. "Deshabilitar las funciones de red, pero permitir el tráfico JDBC"
  • Políticas comunes predefinidas, p. "Permitir acceso de lectura a las propiedades habituales del sistema como file.encoding o line.separator, pero no permitir el acceso de lectura a la página de inicio del usuario"
  • Supervisión y auditoría del registro de seguimiento, p. "Entrar el acceso a archivos, registrar todo el acceso a la red va a knownhost.example.org NO"
  • empleos bloqueo "solicitar" un permiso hasta que un administrador concede permiso, dejando el hilo/trabajo continuará
  • ...

Estoy bastante seguro de que los servidores de aplicaciones (al menos los comerciales) tienen su propia implementación SecurityManager o al menos su propia configuración de políticas. Me pregunto si hay algún proyecto gratuito con requisitos similares.

+0

¿Alguna vez "encontraste" una solución? –

+0

No, realmente no encontré una biblioteca adecuada que ofrezca una implementación sofisticada de un SecurityManager – mhaller

Respuesta

2
  • Dinámico ProtectionDomains (introducido en 1.4 IIRC), delegue en modificable Policy.
  • Determinar los permisos por hilo es, erm, complicado. El administrador de seguridad de applet lo hace por ThreadGroup, que generalmente se considera algo malo.
  • Puede permitir conexiones a puertos específicos. De manera similar, puede tener un controlador JDBC con privilegios que tal vez proxies en otro controlador que afirme privilegios particulares a través del AccessController.doPrivileged.
  • Se pueden especificar permisos para las propiedades del sistema para cada clave individual.
  • AccessController en la implementación Sun/Oracle tiene características de rastreo.
  • Applets/WebStart mostrará un cuadro de diálogo, por ejemplo, sobre la impresión. Pero el enfoque de los servicios JNLP es mucho mejor.

"Glossitope" intentó tener un sistema que aparecía en un cuadro de diálogo cada vez que se solicitaba un permiso. Por supuesto, la solicitud no tiene sentido para el usuario que solo quiere ver a los cerdos bailarines. (Glossitope fue un intento de una versión Java del panel lateral de Vista. Las características agregadas a 6u10 (instalación de arrastrar y soltar, ventanas no rectangulares, icono de advertencia en lugar de pancarta, servicios JNLP) lo hacen redundante en su mayoría).

2

No conozco un proyecto de SecurityManager independiente. Cualquier servidor de aplicaciones (JBoss, Glassfish) contendrá uno para controlar lo que puede hacer una aplicación cargada.

Éstos son algunos enlaces que he encontrado sobre el tema de rodar su propia:

Cuestiones relacionadas