Précédent   Forum des professionnels en informatique > Java > Développement Web en Java > Applets
Applets Vos questions sur les Applets
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/09/2011, 13h17   #1
Membre du Club
 
Inscription : mai 2004
Messages : 49
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mai 2004
Messages : 49
Points : 48
Points : 48
Par défaut Problème de lecture fichier local depuis une applet

Bonjour,
J'ai l'erreur suivante : java.security.AccessControlException
lorsque j'essaie de lire un répertoire local depuis une applet.

J'ai bien sur signé mon applet mais j'ai quand même le problème.
Tout ce que je trouve sur les forums dit qu'il suffit de signer l'applet.
Visiblement cela ne suffit pas !

Après une recherche approfondi sur le forum (google ne remonte pas toujours tout !) j'ai trouvé un post qui précise que le problème vient du javascript !
Et oui j'appel mon applet depuis une fonction javascript.
Même en encadrant ma lecture par
Code :
1
2
AccessController.doPrivileged(new PrivilegedAction<Object>() {
                public Object run() {...}});
J'ai toujours l'erreur.
cyspeo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 14h07   #2
Modérateur
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 16 195
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 16 195
Points : 25 347
Points : 25 347
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
il n'y a rien à faire. Si il y a du javascript dans la pile d'appel, java refusera les droits par sécurité.

La seule solution (dangereuse pour l'utilisateur!) que je connaisse, c'est de traiter l'appel sur un thread séparé:


Code :
1
2
3
4
5
Thread t = new Thread(){
    public void run(){....}
};
t.start();
t.waitFor();
Le thread n'aura pas de JS dans sa pile et sera donc considéré comme sain.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
"Votre génitrice tute des pédoncules au pandémonium" (le conjurateur, 1973)
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 14h27   #3
Membre du Club
 
Inscription : mai 2004
Messages : 49
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mai 2004
Messages : 49
Points : 48
Points : 48
Finalement j'ai réussi.
L'encadrement de mon code par AccessController.doPrivileged a suffit.
Merci quand même pour la réponse.
cyspeo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h34.


 
 
 
 
Partenaires

Hébergement Web