IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applets Java Discussion :

Applet signé et copie depuis le clipBoard


Sujet :

Applets Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Applet signé et copie depuis le clipBoard
    Bonjour,

    Je suis en train d'écrire un applet qui copie les données depuis le clipboard.
    Problème: Je n'ai pas la permission de lire directement dans le clipboard.

    Tentative de solution: J'ai crée un jar et l'ai signé avec jarSigner:

    PS C:\Program Files\Java\jdk1.6.0_20\bin> .\jarsigner.exe -verify -verbose -certs pasteButton.jar

    213 Mon Apr 26 15:01:22 CEST 2010 META-INF/MANIFEST.MF
    334 Mon Apr 26 15:01:22 CEST 2010 META-INF/MYCERT.SF
    952 Mon Apr 26 15:01:22 CEST 2010 META-INF/MYCERT.RSA
    0 Mon Apr 26 15:01:00 CEST 2010 META-INF/
    smk 5038 Mon Apr 26 14:59:46 CEST 2010 pasteButton.class

    X.509, CN=*****, OU=*****, O=****, L=Paris, ST=France, C=fr (mycert)
    [certificate will expire on 25/07/10 14:36]

    smk 829 Mon Apr 26 14:59:46 CEST 2010 pasteButton$1.class

    X.509, CN=****, OU=****, O=****, L=Paris, ST=France, C=fr (mycert)
    [certificate will expire on 25/07/10 14:36]


    s = signature was verified
    m = entry is listed in manifest
    k = at least one certificate was found in keystore
    i = at least one certificate was found in identity scope

    jar verified.


    Problème: J'ai toujours l'erreur suivante quand je tente d'exécuter l'applet dans mon navigateur:

    Exception in thread "AWT-EventQueue-17" java.security.AccessControlException: access denied (java.awt.AWTPermission accessClipboard)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkSystemClipboardAccess(Unknown Source)
    at sun.awt.windows.WToolkit.getSystemClipboard(Unknown Source)
    at pasteButton.pasteClipboard(pasteButton.java:116)
    at pasteButton.pasteData(pasteButton.java:28)
    at pasteButton.paint(pasteButton.java:110)
    at sun.awt.RepaintArea.paintComponent(Unknown Source)
    at sun.awt.RepaintArea.paint(Unknown Source)
    at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

    Même si l'applet est signé (par moi, je n'ai pas acheté de certificat officiel), a aucun moment il est demandé à l'utilisateur d'accepter la signature ou non.

    J'ai essayé de faire:
    Transferable t = (Transferable)AccessController.doPrivileged(new PrivilegedAction() {
    public Object run() {
    return Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);
    }
    });

    Ce qui ne change rien.

    Pourquoi n'y a t-il pas de confirmation possible par l'utilisateur?
    Comment faire pour copier du clipboard sans certificat officiel?

    Merci beaucoup de voter attention.

    La tortue.

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2010
    Messages : 44
    Points : 47
    Points
    47
    Par défaut
    Moi je penche pour un problème avec la signature de ton jar parce que ton navigateur devrait te demander si tu es bien d'accord de démarrer ton application ou pas.

    Pour les quelques tests que j'ai fais (communication RMI entre une application et une applet et une applet qui écrit un fichier sur le disque) mon certificat bidon à tout à fait suffit.

    Pour valider que c'est bien un problème de permission, tu peux lancer ton application avec l'appleviewer avec un fichier policy qui permet tout :

    fichier "policy" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    grant {
        permission java.security.AllPermission;
    };
    commande de démarrage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    appletviewer -J-Djava.security.policy=policy index.html

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Merci d'avoir répondu, butane.

    J'ai résolu le problème.

    Avec l'applet viewer, tout fonctionnait parfaitement.

    Complètement désespéré, j'ai réinstallé le SDK java à tout hasard. Et là,... Ca marche.

    Je n'ai aucune explication, j'ai rien compris mais ça a marché.
    J'ai rarement vu un truc aussi mystique...

    La tortue.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2010
    Messages : 44
    Points : 47
    Points
    47
    Par défaut
    Bon bah si c'est un problème de type démoniaque je suis plus compétant...

Discussions similaires

  1. Réponses: 18
    Dernier message: 21/08/2007, 00h48
  2. Problème sur la commande COPY depuis un programme Java
    Par klereth dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 10/02/2006, 14h14
  3. fichier batch (copie depuis lecteur réseau avec mot de passe
    Par Mickey34 dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 09/02/2006, 22h33
  4. [applet] Enregistré un fichier depuis l'applet
    Par BouB dans le forum Applets
    Réponses: 2
    Dernier message: 01/02/2006, 11h19
  5. Réponses: 2
    Dernier message: 08/08/2005, 21h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo