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 :

Chargement DLL : java.security.AccessControlException: access denied


Sujet :

Applets Java

  1. #1
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut Chargement DLL : java.security.AccessControlException: access denied
    Bonjour,
    je voudrais utiliser un applet java qui utilise la librairire RXTXComm. Cette librairie s'appuie sur un dll pour acceder aux ports COM. J'ai deja consulté sans succès le message http://www.developpez.net/forums/d12...tion-probleme/.
    Voici mon installation :
    • Certificat genéré : keytool -genkey -keystore myKeyStore -alias me
      keytool -selfcert -keystore myKeyStore -alias me
    • RXTXComm.jar est signé avec le certificat, et est placé dans jre/lib/ext
      jarsigner -keystore d:\workspace\myKeyStore RXTXComm.jar me
    • la dll est placée dans jre/bin
    • l'applet est signé avec le certificat
      jarsigner -keystore d:\workspace\myKeyStore applet.jar me
    • Eclipse lance l'applet sans erreur.
    • appletviewer genere l'erreur : Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "loadLibrary.rxtxSerial")
    • Je ne veux pas toucher aux fichiers policy de java.


    Traceback de l'erreur :
    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
    D:\workspace>appletviewer test.html
    Refresh serial port list
    Refreshing serial port list...
    java.lang.ExceptionInInitializerError thrown while loading gnu.io.RXTXCommDriver
     
    java.lang.ExceptionInInitializerError
            at Instrument$1.run(Instrument.java:135)
            at Instrument$1.run(Instrument.java:1)
            at java.security.AccessController.doPrivileged(Native Method)
            at Instrument.refreshSerialPortList(Instrument.java:133)
            at Instrument.initInstrument(Instrument.java:65)
            at Instrument.<init>(Instrument.java:40)
            at Tanita.<init>(Tanita.java:8)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
     
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
    orAccessorImpl.java:57)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
    onstructorAccessorImpl.java:45)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
            at java.lang.Class.newInstance0(Class.java:374)
            at java.lang.Class.newInstance(Class.java:327)
            at sun.applet.AppletPanel.createApplet(AppletPanel.java:793)
            at sun.applet.AppletPanel.runLoader(AppletPanel.java:722)
            at sun.applet.AppletPanel.run(AppletPanel.java:379)
            at java.lang.Thread.run(Thread.java:722)
    Caused by: java.security.AccessControlException: access denied ("java.lang.Runti
    mePermission" "loadLibrary.rxtxSerial")
            at java.security.AccessControlContext.checkPermission(AccessControlConte
    xt.java:366)
            at java.security.AccessController.checkPermission(AccessController.java:
    560)
            at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
            at java.lang.SecurityManager.checkLink(SecurityManager.java:835)
            at java.lang.Runtime.loadLibrary0(Runtime.java:839)
            at java.lang.System.loadLibrary(System.java:1084)
            at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
            ... 17 more
    Code qui génère l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Enumeration<CommPortIdentifier> portEnum = 
    		AccessController.doPrivileged(new PrivilegedAction<Enumeration<CommPortIdentifier>>() {
    	public Enumeration<CommPortIdentifier> run() {
    		return CommPortIdentifier.getPortIdentifiers();
    	}
    });
    Merci pour vos avis éclairés.
    Z.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 34
    Points
    34
    Par défaut
    Bonjour,
    j'ai a peu près le même problème. Avez-vous trouvé une solution ? Sans toucher aux fichiers policy de java ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 34
    Points
    34
    Par défaut
    J'ai trouvé une solution a mon problème.

    Je charge mon applet via un fichier jnlp. Je n'avais pas définit de sécurité dans le jnlp, j'ai donc ajouté une config de sécurité (partie en vert) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <applet id="myApplet"
        jnlp_href="/resources/applet/my-applet.jnlp"
        width="1000" height="150">
    </applet>
    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
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE jnlp PUBLIC "-//Sun Microsystems, Inc//DTD JNLP Descriptor 6.0//EN" "http://java.sun.com/dtd/JNLP-6.0.dtd">
    <jnlp spec="6.0+" codebase="" href="" version="11.0">
    	<information>
    		<title>My Applet</title>
    		<vendor>Me</vendor>
    	</information>
    
    	<resources>
    		<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" />
    		<jar href="my-applet.jar" main="true" />
    	</resources>
    
        <security>
            <all-permissions/>
        </security>
        
    	<applet-desc name="My Applet"
    		main-class="me.MyApplet"
    		width="1000" height="150">
    	</applet-desc>
    </jnlp>

  4. #4
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Je n'ai pas réussi a utiliser les certificats et bypasser la sécurité. J'ai construit une application java qui contient la dll. Au lancement de l'application, la dll est extraite dans un repertoire temporaire. Puis ce repertoire est ajouté a la liste des chemins des librairies.

    Donc pas de communication possible entre mon site web et l'application java. Les données sont insérés dans une table de la base de données. L'utilisateur trouve donc 2 buttons sur la page. Un pour telecharger et lancer l'application. L'application stock les info dans la table. Puis un 2eme pour recuperer les infos a partir de la table, avec de l'AJAX. Le seul inconvenient est de saisir l'identifiant unique dans l'application Java, pouvant etre source d'une erreur.

    Z.

Discussions similaires

  1. Réponses: 18
    Dernier message: 13/10/2010, 15h36
  2. java.security.AccessControlException: access denied
    Par nezdeboeuf62 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 28/05/2009, 12h18
  3. java.security.AccessControlException: access denied
    Par mcmazigh dans le forum Applets
    Réponses: 1
    Dernier message: 25/08/2008, 17h11
  4. java.security.AccessControlException: access denied
    Par ludonantes dans le forum Applets
    Réponses: 10
    Dernier message: 28/03/2006, 17h44
  5. Réponses: 2
    Dernier message: 27/03/2006, 17h05

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