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

AWT/Swing Java Discussion :

[JApplet][swing] problème d'acces


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut [JApplet][swing] problème d'acces
    bonjour,
    j'ai developpé une applet qui fait des trucs parmi lesquel l'acces à des donnés et leur affichage.
    pour pouvoir faire ça il fallait que je signe l'applet.
    pour pouvoir le faire je vous renvois à ce lien:
    signer une applet

    tout marche à merveille jusqu'à ce que j'ai décidé de faire de l'affichage graphique (swing) et là boum! voilà ce que je rencontre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.misc)
     
    	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.checkPackageAccess(Unknown Source)
     
    	at sun.applet.AppletSecurity.checkPackageAccess(Unknown Source)
     
    	at sun.applet.AppletClassLoader.loadClass(Unknown Source)
     
    	at java.lang.ClassLoader.loadClass(Unknown Source)
     
    	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
     
    	at certif.MozillaContext.initialize(MozillaContext.java:37)
     
    	at MainInterface.model.AppletSign.<init>(AppletSign.java:51)
     
    	at MainInterface.view.MainPanel.<init>(MainPanel.java:79)
     
    	at test.AppletTest0.init(AppletTest0.java:43)
     
    	at sun.applet.AppletPanel.run(Unknown Source)
     
    	at java.lang.Thread.run(Unknown Source)
    voici mon code html mais je crois pas que ce sera d'une grande utilité:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <HTML>
    	<HEAD>
    		<TITLE>Applet java</TITLE>
    	</HEAD>
    	<BODY BGCOLOR=white>
    		<H1>Applet java</H1>
    		<HR>
    			<DIV ALIGN=center> 
    				<APPLET codebase="." CODE="test.AppletTest0.class" WIDTH="300" HEIGHT="100" ARCHIVE="SApplet.jar,jss34.jar">
    				</APPLET>
    			</DIV>
    		<HR>
    	</BODY>
    </HTML>
    la question que je me pose est la suivante: pourquoi il y a un problème de sécurité quand je veux faire un affichage graphique dans une fenêtre???
    en tout cas moi ça me parait absurde
    est ce que quelqu'un a une idée sur le sujet?
    merci
    "Ce qui ne nous tue pas nous rend plus fort"
    Nietzsche

  2. #2
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    en faite quand j'enlève l'interface graphique tout marche et il n'y a aucun souci.
    on dirait que certaines fonctionnalités du swing ne sont pas tolérées en applet... bizarre en tout cas puisque je viens de la signer.
    "Ce qui ne nous tue pas nous rend plus fort"
    Nietzsche

  3. #3
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    Bonjour,
    Peux-tu nous dire les parties de swing que tu utilises ?
    Si tu utilises une Applet ou une JApplet ?
    Et si tu essaies de faire apparaitre une JFrame, JWindow, JDialog et/ou un JPopupMenu (ou JMenuPopup, j'ai un doute sur le nom exact de la classe)
    Ca me permetrais de tester, car j'ai encore jamais ce genre de soucis.
    JHelp
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

  4. #4
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    bonjour,
    voici les composants swing que j'utilise:
    1. JApplet
      JFrame
      JPanel
      JButton
      JTabbedPane
      JTable
    "Ce qui ne nous tue pas nous rend plus fort"
    Nietzsche

  5. #5
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    bon sur l'appletViewer ça marche
    mais sur un navigateur non
    pourtant j'ai bien signé mon applet
    peut être qu'il y a quelque chose d'autre à faire? :
    "Ce qui ne nous tue pas nous rend plus fort"
    Nietzsche

  6. #6
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    Bonjour je viens de tester ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    import java.awt.BorderLayout;
    import java.awt.HeadlessException;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JApplet;
    import javax.swing.JButton;
    import test.FrameTest;
     
    public class AppletTest
          extends JApplet
          implements ActionListener
    {
       private FrameTest frame;
       private JButton bouton;
       /**
        * @throws HeadlessException
        */
       public AppletTest()
             throws HeadlessException
       {
       }
       public void init()
       {
          this.frame = new FrameTest();
          this.bouton = new JButton("Click");
          this.bouton.addActionListener(this);
          this.getContentPane().setLayout(new BorderLayout());
          this.getContentPane().add(this.bouton);
       }
       public void start()
       {
       }
       public void stop()
       {
          this.frame.dispose();
       }
       /**
        * @param e
        * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
        */
       public void actionPerformed(ActionEvent e)
       {
          this.frame.setVisible(true);
       }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    package test;
     
    import java.awt.BorderLayout;
    import java.awt.HeadlessException;
    import javax.swing.JFrame;
    import javax.swing.JTable;
     
    public class FrameTest
          extends JFrame
    {
       private JTable table;
       /**
        * @throws HeadlessException
        */
       public FrameTest()
             throws HeadlessException
       {
          this.table = new JTable(new String[][]
          {
                {
                      "JHelp", "developpez", "pomme"
                },
                {
                      "poire", "prune", "peche"
                },
                {
                      "pacte", "loire", "role"
                }
          }, new String[]
          {
                "titre", "entête", "colonne"
          });
          this.getContentPane().setLayout(new BorderLayout());
          this.getContentPane().add(this.table, BorderLayout.CENTER);
          this.pack();
          this.setDefaultCloseOperation(HIDE_ON_CLOSE);
       }
    }
    Et ça marche parfaitement, même sans signature
    Il va falloir nous en dire plus sur ce que tu fais
    JHelp
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

  7. #7
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    En faite ce que je fais est le suivant:
    j'accède au keystore de Firefox (j'utilise la librairie jss pour ça), j'affiche son contenu et l'utilisateur peut sélectionner un certificat pour faire une signature...
    mais ce truc marche si je n'utilise pas swing (interaction directe sur la console)
    "Ce qui ne nous tue pas nous rend plus fort"
    Nietzsche

  8. #8
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    vraiment bizarre :
    là je viens de tester ton exemple et ça marche parfaitement
    "Ce qui ne nous tue pas nous rend plus fort"
    Nietzsche

  9. #9
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    d'après le message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.misc)
    visiblement il y a un probleme d'acces au package sun.misc et ce problème ne s'est pas manifesté avant d'ajouter l'interface graphique...

    j'ai essayé de résoudre le problème en ajoutant le bout de code à l'applet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RuntimePermission rp = new RuntimePermission("accessClassInPackage.sun.misc");
    ce qui permet théoriquement de résoudre le problème
    mais voilà ça n'a aucun éffet
    peut être que je n'ai pas su oû le placer
    est ce que quelqu'un a une idée :
    "Ce qui ne nous tue pas nous rend plus fort"
    Nietzsche

  10. #10
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    il y a un truc encore plus bizarre:

    1. mon application sans interface graphique: ça marche

    • l'interface graphique toute seule: aucun souci

    • les deux ensemble: boum ça marche plus


    il y a toujours:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.misc)
    "Ce qui ne nous tue pas nous rend plus fort"
    Nietzsche

  11. #11
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    Citation Envoyé par soulhouf
    il y a un truc encore plus bizarre:

    1. mon application sans interface graphique: ça marche

    • l'interface graphique toute seule: aucun souci

    • les deux ensemble: boum ça marche plus


    il y a toujours:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.misc)
    :
    Heu je crois que là il va falloir que tu nous montres un peu de code
    Parceque là c'est à arracher les cheveux ton pb
    JHelp
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

Discussions similaires

  1. [Swing] Problème avec un bean et un arraylist
    Par kikoufr dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 30/09/2004, 09h08
  2. [Swing] problème d'affichage
    Par l'obstiné dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 21/08/2004, 18h05
  3. [SWING] Problème de rafraichissement
    Par david71 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 24/05/2004, 15h38
  4. [TOMCAT] JSP problème d'accès aux méthodes d'une classes
    Par gunnm dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 22/05/2004, 14h02
  5. problème d'acces concurentiel à un fichier
    Par Theoden dans le forum MFC
    Réponses: 2
    Dernier message: 04/03/2004, 09h49

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