2008-08-29 7 views
0

J'ai une application qui vraiment devrait être installé, mais fonctionne bien lorsqu'il est déployé en utilisant JNLP.Comment détecter si une fonction est disponible pendant l'exécution de JNLP?

Toutefois, il semblerait que certaines fonctions Java telles que Runtime.exec ne fonctionnent pas avec les options de sécurité par défaut.

Je voudrais donc disable fonctionnalité UI qui repose sur de telles fonctions.

Donc, ma question est, comment puis-je détecter au moment de l'exécution si certaines fonctions sont disponibles ou non?

L'étude de cas, ici bien sûr, est Runtime.exec.

Répondre

1

Vous souhaitez demander au SecurityManager si vous avez droit à Exec avec la méthode checkExec.

1

J'ai aussi trouvé que l'ajout de ce qui suit au fichier JNLP:

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

Et la signature du fichier JAR permet à l'application de fonctionner avec toutes les autorisations nécessaires pour Runtime.exec.

0

Pour l'exemple spécifique de Runtime.exec, il existe une méthode dans la classe SecurityManager checkExec (String cmd) qui lancera une exception qui peut être interceptée pour déterminer si la commande nécessaire peut être exécutée. Pour plus d'informations, consultez javadoc pour Runtime.exec et SecurityManager.checkExec.

Le cas plus général nécessite la création d'un objet Permission représentant la tâche en cours de vérification et l'exécution de la méthode checkPermission de SecurityManager.

Questions connexes