JApplet et sécurité

Squaredge Messages postés 20 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 25 février 2006 - 24 févr. 2006 à 21:10
Squaredge Messages postés 20 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 25 février 2006 - 25 févr. 2006 à 00:26
Bonjour, je pose une question car j'ai un probleme de sécurité avec une JApplet et la classe File.
En effet, j'essaie de compter le nombre de fichier présent dans un dossier SUR LE SERVEUR. Pour cela, j'ai créé cette méthode dans ma classe Application :

public class Application extends JPanel implements ActionListener, MouseListener{

......
public int nbMotifs(){

File f;
boolean present = true;
int nbMotifs = 0;

while (present == true){
chemin="images/motifs/";
chemin=chemin.concat(chemin.valueOf(nbMotifs));
chemin=chemin.concat(".gif");

f = new File(chemin);
if (f.exists())
nbMotifs++;
else
present = false;
}

return nbMotifs;
}
}

Le probleme c'est qu'au chargement de l'applet j'ai un probleme de ce type :
java.security ... (cannot read img.gif) ...
Je sais que le probleme vient de cette fonction et plus particulierement de la variable chemin. Cette derniere devrait definir un chemin absolu vers l'emplacement de l'image.

J'ai donc essayé la méthode getCodeBase(), mais il me refuse cette possibilité dans la méthode ... je ne vois pas pourquoi. Si vous pouviez m'aider. Merci !

10 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
24 févr. 2006 à 21:17
je pense que ton chemin n'est pas bien construit vu que tu sais lire l'image de fond de ton applet fond ......



print sur la console le chemin que tu obtiens


WORA
0
Squaredge Messages postés 20 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 25 février 2006
24 févr. 2006 à 21:23
J'obtiens le bon chemin mais en relatif (a partir de images/ ... c'est pour ca que je pense que le getCodeBase() doit avoir sa place également dans cette méthode ...
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
24 févr. 2006 à 21:29
ba vi il te le faut tt le temp

sinon ton applet va partir du principe que l'image est sur le poste client

WORA
0
Squaredge Messages postés 20 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 25 février 2006
24 févr. 2006 à 21:38
Mais quand je fais :

chemin = app.getCodeBase();
chemin=chemin.concat("images/motifs/");
chemin=chemin.concat(chemin.valueOf(nbMotifs));
chemin=chemin.concat(".gif");

Il me dit qu'il y a une erreur (meme en forcant le type en chaine de caractere).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
24 févr. 2006 à 21:52
C'est normal

app.getCodeBase(); te retourne une url et non une chaine de caractères


WORA
0
Squaredge Messages postés 20 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 25 février 2006
24 févr. 2006 à 22:11
J'ai trouvé !

chemin = (app.getCodeBase()).toString();

Voila le code qui permet de convertir le lien en String. Cependant, il me sort une erreur incomprehensible !!!

http://fpaternonline.com/Java/page.html
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
24 févr. 2006 à 22:52
Echec du chargement de l'applet Java...
Effectivement, c'est incompréhensible ;)
0
Squaredge Messages postés 20 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 25 février 2006
24 févr. 2006 à 23:13
Je ne vois surtout pas pourquoi ... dans la barre d'état il indique qu'il n'arrive pas a charger une image se trouvant sur le serveur (l'url indiqué étant la bonne ...) !!
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
24 févr. 2006 à 23:37
modifie ton fichier html comme suit juste pour etre bien propre

<html>
<applet codebase="." code="ColoriageMagique.class" height="600" width="800">
</applet>
</html>


sinon dans l'exception généré

ava.security.AccessControlException: access denied
(java.io.FilePermission
http:/fpaternonline.com/Java/images/motifs/0.gif read)

l'url n'es pas clair chez moi une vrai url c'est http://fpaternonline.com/Java/images/motifs/0.gif


WORA
0
Squaredge Messages postés 20 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 25 février 2006
25 févr. 2006 à 00:26
Oui, j'ai modifié le HTML comme indiqué.
J'ai aussi regardé le code après avoir vu ce que tu m'as dis et j'ai remarqué qu'il manqué un / avant "images/motifs".
Le code modifié est donc celui la :

public int nbMotifs(){

File f;
boolean present = true;
int nbMotifs = 0;

while (present == true){
chemin = (app.getCodeBase()).toString();
chemin=chemin.concat("/images/motifs/");
chemin=chemin.concat(chemin.valueOf(nbMotifs));
chemin=chemin.concat(".gif");

f = new File(chemin);
if (f.exists())
nbMotifs++;
else
present = false;
}

return nbMotifs;
}

Le problème ce que maintenant même avec appletviewer il a un problème ... donc je ne crois pas que ce soit la bonne solution .. j'ai up et le problème reste identique : probleme de lecture du fichier ... c'est a n'y rien comprendre !
0
Rejoignez-nous