Pregunta

Tengo una aplicación que en realidad debe instalarse, pero funciona bien cuando se implementa utilizando JNLP.

Sin embargo, parecería que algunas funciones de Java como Runtime.exec no funciona usando las opciones de seguridad predeterminadas.

me gustaría por lo tanto desactivar Funcionalidad de la interfaz de usuario que se basa en dichas funciones.

Entonces mi pregunta es, ¿Cómo puedo detectar en tiempo de ejecución si ciertas funciones están disponibles o no?

El caso de estudio, aquí por supuesto, es Runtime.exec.

¿Fue útil?

Solución

Quieres preguntarle al Gerente de seguridad si tiene derecho Exec con el método checkExec.

Otros consejos

También descubrí que agregar lo siguiente al archivo JNLP:

<security>
    <all-permissions/>
</security>

Y firmar el archivo JAR permite que la aplicación se ejecute con todos los permisos necesarios para Runtime.exec.

Para el ejemplo específico de Runtime.exec, hay un método en la clase SecurityManager checkExec(String cmd) que generará una excepción que se puede detectar para determinar si se puede ejecutar el comando necesario.Para obtener más información, consulte el javadoc para Runtime.exec y SecurityManager.checkExec.

El caso más general requiere crear un objeto Permiso que represente la tarea que se está verificando y ejecutar el método checkPermission de SecurityManager.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top