Bonjour
ne trouvant plus rien via les moteurs de recherche, je me tourne vers vous.
j'ai une applet qui doit parser un gros fichier de texte sous forme de Stream.
Le fichier est stocké sur le même serveur, dans le même répertoire. Donc normalement je n'ai pas besoin de signer l'applet ?
Pourtant ça bloque et j'ai une exception de sécurité.
java.security.AccessControlException: access denied (java.lang.RuntimePermission setSecurityManager) etc.
et plus loin:
java.security.AccessControlException: access denied (java.net.SocketPermission [url de l'applet]/appletsocket/carte/villes.txt resolve)
Voici l'extrait de code qui est en cause :
Le message d'erreur montre que le chemin vers le fichier est le bon. J'ai essayé de changer le répertoire du fichier villes.txt, en vain. J'ai lu que les threads lancé par une applet avaient des droits limités, donc j'ai rapatrié le code cité ci dessus dans la classe principale qui étend JApplet. J'ai changé de serveur. J'ai regardé du côté du fichier java.policy.applet, il contient :
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 @Override public void start() { super.start(); URL urlServer = getCodeBase(); String adresse = urlServer.getHost(); Socket socket = null; Scanner scanner = null; try { socket = new Socket(adresse + "/appletsocket/carte/villes.txt", 80); } catch (UnknownHostException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } try { scanner = new Scanner(socket.getInputStream()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } parserVilles.tracerVilles(this, scanner); }
J'ai testé sous 3 navigateurs, c'est pareil. Je me demande si la solution ne serait pas du côté de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 grant { permission java.security.AllPermission; };
System.setSecurityManager(...);
mais je ne comprends pas très bien de quoi il retourne.
Si quelqu'un a des lumières !
Partager