2009-01-13 7 views
0

Je veux simplement appeler une action swing à partir de mon propre menu contextuel. Mais puisqu'il y a un gestionnaire de sécurité j'ai besoin d'une solution pour appeler cette action sans l'appeler directement. Par exemple, l'action de collage d'un composant de texte échouera, car sun.swing.SwingUtilities2 ne peut pas être chargé s'il y a une de mes classes dans la pile d'appels.Comment déclencher en toute sécurité une Swing-Action dans une applet restreinte?

Existe-t-il un moyen de mettre en file d'attente un événement dans le thread d'événement? JComponent.dispatchEvent ne fait pas le travail car il traite l'événement lui-même.

Répondre

0

Réponse courte: vous ne pouvez pas sans signer l'applet. Réponse longue: Si vous le pouvez sans autorisations, vous pouvez mettre en file d'attente toutes sortes de messages intéressants. Votre exemple, coller ou au long format: avoir accès à quelque chose que le client a déjà copié, est une action que le client doit connaître et autoriser. Pensez à une applet rouge surveillant le presse-papiers, "collant" tout et l'envoyant sur le fil à un serveur distant. Votre code PIN par exemple

La solution est de signer votre applet, disant ainsi au client "Il est en (votre nom ici) la responsabilité que cette applet n'est pas mauvaise." et demander à l'utilisateur s'il/elle vous croit. Si oui, le responsable de la sécurité ne vous bloquera plus. Si non - bien, l'utilisateur se méfie de vous, pourquoi la JVM devrait-elle faire autrement?

Voir http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html

Questions connexes