Applets inaccessibles avec les dernières versions de Java

Fermé
outness Messages postés 8 Date d'inscription lundi 29 avril 2013 Statut Membre Dernière intervention 27 février 2016 - Modifié par KX le 31/08/2015 à 20:11
outness Messages postés 8 Date d'inscription lundi 29 avril 2013 Statut Membre Dernière intervention 27 février 2016 - 3 sept. 2015 à 22:14
Bonjour,

j'héberge un site (eliott.outness.net) réalisé en grande partie par un ami qui ne peut plus s'en occuper, et depuis les dernières versions de java, il est inaccessible concernant ce qui est sous java.
Histoires de certificats ai-je cru comprendre.
J'ai du mal à comprendre ce qu'il faut faire pour le rendre accessible.
Je n'ai pas les sources des applets.
ma question : Si cela est possible, que devrais-je faire pour rendre ce site et ses jeux accessibles ?

Et combien cela coûterait-il ?

Merci d'avance pour votre aide.
A voir également:

1 réponse

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
31 août 2015 à 12:22
Bonjour,

Au contraire de demander aux utilisateurs d'installer une version obsolète et dangereuse de Java (en gros et rouge sur ta page d'accueil) il faut plutôt leur demander d'avoir la dernière version.

Le problème ne vient de toute façon pas de Java, mais des navigateurs (Chrome, Firefox, etc.) qui bloquent les plugins Java. Dans ta logique il faudrait donc aussi leur demander de ne pas mettre à jour leur navigateur web ou plus largement ne jamais faire de mises à jour...

Je viens de faire des tests avec la dernière version de Java (8u60).
Voici les étapes que tu peux indiquer à tes utilisateurs :

1) Il faut d'abord configurer une exception pour le site web dans Java.
Comment configurer la liste des sites avec exception ?

2) Selon le navigateur :

2a) Internet Explorer et Mozilla Firefox :
Il faut autoriser l'applet à s'exécuter (rien de plus)

2b) Google Chrome :
Il faut faire l'Activation de NPAPI dans Chrome version 42 et ultérieur.
Puis autoriser le plugin à s'exécuter sur la page (dans la barre d'adresse).

Remarque : cette méthode pourrait ne plus fonctionner à partir de la version 45 de Chrome.

Dans tous les navigateurs ton applet peut donc s'exécuter mais va planter sur la même erreur :

AccessControlException
access denied ("java.net.SocketPermission" "89.90.46.26.9876" "connect,resolve")

Pour résoudre ce problème il faut regarder ici :

Développeurs : contenu Java dans le navigateur : modifications du manifeste de sécurité

Bref, tu l'auras compris, les applets survivent tant qu'elles peuvent, on peut encore les faire fonctionner mais tôt ou tard elles seront éradiquées, il est grand temps d'envisager à changer de technologie...
0
outness Messages postés 8 Date d'inscription lundi 29 avril 2013 Statut Membre Dernière intervention 27 février 2016 2
31 août 2015 à 18:51
merci pour cette réponse.
J'ai testé et pas trouvé la possibilité d'activer le choix "toujours activer", mais ce n'est pas important. Puisque l'on tombe inévitablement avec cette dernière version de Java sur
"AccessControlException
access denied ("java.net.SocketPermission" "89.90.46.26.9876" "connect,resolve")",
j'ai essayé de comprendre ce qui était dit dans le lien que tu as mis.
J'avoue que je ne comprends pas l'anglais et qu'aucune applet n'est signée à ma connaissance, d'où ma question :
sans les sources des applets, est-il possible de les signer, et que faut-il faire en plus (certificats ? à quel prix ?) pour donner accès aux rares qui continuent à venir sur ce site ?
Pour l'instant, je ne vois pas d'autre solution que de laisser une ancienne version de Java pour leur donner accès à ce site où ils ne risquent rien.

merci encore pour ta réponse.
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
Modifié par KX le 31/08/2015 à 20:10
"J'avoue que je ne comprends pas l'anglais"
Bizarre, tous les liens que je t'ai donné sont en français...

"aucune applet n'est signée à ma connaissance"
Vu le message d'erreur c'est même sûr !

"sans les sources des applets"
On peut toujours récupérer des sources équivalentes que l'on peut modifier et recompile. Mais vu ton problème, les archives .jar suffiront.

"est-il possible de les signer"
Oui, il est même possible de les "auto-signer" c'est à dire créer ton propre certificat (que personne ne reconnaîtra, sauf ceux qui te font confiance) et signer tes jars avec certificat.

Création du keystore et de l'alias:
keytool -genkey -keystore myKeyStore.jks -alias myKeyStoreAlias

Remarque : en Java les mots de passes par défaut des keystore sont changeit, comme la sécurité n'a aucune importance dans ton cas tu peux mettre cette valeur par défaut, ça t'évitera de l'oublier...

Création du jar signé à partir d'un jar non signé :
jarsigner -keystore myKeyStore.jks -signedjar mySignedApplet.jar myUnsignedApplet.jar myKeyStoreAlias

Remarque : cela va rajouter deux fichiers dans le jar et modifier le manifest pour pouvoir signer chaque fichier du jar (empreinte SHA-256)
Le nom des fichiers ajoutés correspondent aux 8 premières lettres de l'alias, choisis donc bien la valeur de myKeyStoreAlias puisqu'elle se verra dans le jar (outness peut-être ?)
0
outness Messages postés 8 Date d'inscription lundi 29 avril 2013 Statut Membre Dernière intervention 27 février 2016 2 > KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024
1 sept. 2015 à 07:50
Et si les seuls fichiers dont je dispose apparemment sont des fichiers .class ?
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
1 sept. 2015 à 13:36
Il va falloir les mettre dans un .jar (qui n'est rien d'autre qu'un zip de tous les fichiers .class)

Par exemple, si on considère /chat_s/dcw/LzpLignezero.class

Il va falloir faire dans /chat_s un zip (avec l'extension .jar) contenant les fichiers suivant (en respectant l'arborescence des dossiers)

META-INF
MANIFEST.MF
dcw
LzpLignezero.class

Remarque : il faut que le jar soit complet, c'est à dire qu'il contienne toutes les classes pour pouvoir être signé exhaustivement.

Le fichier MANIFEST.MF devra contenir au moins ceci (attention à la dernière ligne vide qui est obligatoire), il sera complété au moment de le signer.

Manifest-Version: 1.0
 

Il ne faudra pas oublier de modifier l'applet dans le code html pour prendre en compte le jar signé et non plus les fichiers .class

<applet code="dcw.LzpLignezero" archive="/chat_s/MySignedApplet.jar" width="1000" height="22">
    <param name="permissions" value="all-permissions" /> <!-- valeur par défaut pour les applets signées -->
0
outness Messages postés 8 Date d'inscription lundi 29 avril 2013 Statut Membre Dernière intervention 27 février 2016 2
3 sept. 2015 à 22:14
Merci beaucoup pour ces explications claires.
J'ai commencé à essayer de les mettre en place avec déjà un peu de résultats..
Merci encore.
0