Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déplo
Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M. Ingénieurs 2000 IR3 Sommaire • Les applettes Présentation Créer et exécuter une applette La sécurité des applettes • Les droits et les interdictions. • Lever ces interdictions. • Java Web Start (JWS) Présentation Déployer une application ok La sécurité Les Applettes, c’est quoi ? • Programme Java qui s’intègre dans une page Web. • Interactivité. Graphique animé, lecteur vidéo, etc. • Exécution du code côté client. Répartition de charge • Multiplateforme et « multinavigateur ». • Principale concurrent : Flash L’applette est chargée depuis un serveur puis exécutée sur le poste client. Processus de chargement page.html + Applet.class Comment lire une Applette ? • Pour l’insérer dans une page Web <OBJECT> (valide W3C) <APPLET> (préconisée par SUN) • Pour l’exécuter Un navigateur AppletViewer (JDK) • appletviewer http://.../MonApplet.html Toutes les applettes de la page sont exécutées La balise <applet> <applet codebase= " http://localhost:8080/Projet/" code="MonApplet.class" archive="archive1.jar, archive2.jar" name="A1" width="200" height="200"> <param name="arg1" value="value1" /> <param name="arg2" value="value2" /> </applet> Comment créer une applette ? public class MyFirstApplet extends Applet { @Override public void init() {…} @Override public void start() {…} @Override public void stop() {…} @Override public void destroy() {…} @Override public void paint() {…} } Cycle de vie • AppletViewer : init() start() stop() destroy() • Navigateurs récents: init()+start() stop()+destroy() Différents dialogues possibles (1/2) • Entre applets d’une même page getAppletContext().getApplet("A1"). javaMethod() • De JavaScript à une applet document.applets[‘A1'].javaMethod() • Des applets à JavaScript Ajouter l’attribut mayscript="true" Importer plugin.jar (JRE) new JSObject.call("javascriptMethod") Différents dialogues possibles (2/2) • Avec le serveur qui héberge l’applette URLConnection con = new URL(getCodeBase(), «ServletName »).openConnection() OutputStream stream = con.getOutputStream() Sécurité des applettes • La SandBox Protéger le client Pas d’accès aux fichiers, périphériques et au réseau du client. Lève SecurityException • Accès non restreint ? Modifier les politiques de sécurité du client Signer numériquement l’application. Les politiques de sécurité Etendre les droits • Un fichier côté client grant codeBase "http://localhost:8080/AppletServlet/MstscNS.jar" { permission java.io.FilePermission "c:\\windows\\system32\\mstsc.exe", "execute"; }; • A éditer à la main ou avec policytool (JRE). • Prendre en compte la nouvelle politique appletviewer –H-Djava.security.policy=« mypolicy » http://.../file.html La placer dans {USER.HOME}/.java.policy Signature numérique Lever les interdictions • Archiver l’application • Créer un certificat keytool -genkey -keystore myKeystore.ks -alias mykey • Signer l’archive jarsigner –keystore myKeystore.ks myappli.jar mykey Conclusion • Avantages Technologie mature S’intègre facilement S’affranchir des limitations de HTML • Bibliothèques Java consistantes • Les applettes ne sont pas mortes Java FX Java Web Start : Présentation • Déploiement d’applications ou d’applettes Java Téléchargement des données. Installation / Exécution / Désinstallation Intégration Mises à jour automatiques • A l’initiative du client. Différent de System Management Server • Equivalent à ClickOnce Avantages Java Web Start • La portabilité • La maintenance • La sécurité • Les optimisations Mises à jour des fichiers anciens seulement (jardiff) Seules les ressources utilisées sont téléchargées Mises en cache (exécution hors ligne, lancement accéléré) L’application est téléchargée, installée puis exécutée sur le poste client Processus de déploiement Descriptor.jnlp + Application.jar 2 Client JWS demande Application.jar 1 Demande Descriptor.jnlp • Aucune modification du code n’est nécessaire. • Archiver l’application • Créer fichier de lancement au format JNLP • Ajouter le type MIME « application/x-java-jnlp-file jnlp ». Au niveau du serveur Web (Apache : fichier « mime.types ») • Placer les archives + JNLP sur le serveur Web Déployer une application Le fichier JNLP Structure <?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="http://localhost:8080/TestJWS"> <information>(...) </information> <security> (...) </security> <resources> (...) </resources> <application-desc> (...) </application-desc> <applet-desc> (...) </applet-desc> </jnlp> Le fichier JNLP Information <information> <title>Nom de l’application</title> <shortcut><desktop /></shortcut> <homepage href="http://.../expose.html"/> <description> (…) </description> <icon kind="splash" href="img/ig2k_logo.png" /> <offline-allowed/> </information> Le fichier JNLP Sécurité, Update et Resources <security> <all-permissions /> </security> <update check=“always" policy="prompt-update"/> <resources> <java version="1.6+" max-heap-size="64m"/> <jar href="Mstsc_version_JWS.jar" main="true" download="eager"/> </resources> Le fichier JNLP Application <application-desc main-class="MaClassePrincipale"> <argument>arg1</argument> <argument>arg2</argument> </application-desc> Ou bien … <applet-desc main-class="MonApplet" name="test" width="320" height="240"> <param name="key1" value="value1" /> <param name="key2" value="value2" /> </applet-desc> Lancer une application Java Web Start • Pré-requis : Client JWS (inclus dans les JRE 1.4+) •Avant installation Depuis un navigateur Web • <a href=« AppliDescriptor.jnlp»>Start Appli</a> En ligne de commande • javaws HTTP://.../AppliDescriptor.jnlp • Après installation À partir d’un gestionnaire d’applications À partir d’un raccourci créé sur le bureau Lancer une application Java Web Start Le gestionnaire d’applications • javaws -viewer • Identique aux applettes Exécution dans la SandBox • Etendre les droits Mêmes solutions : • Modifier les politiques de sécurité • Signer numériquement les archives Nouvelle solution : l’API JNLP Java Web Start : Sécurité • Etendre les droits sans signature numérique • Librairie nécessaire « javaws.jar » (JRE) • Fournit 11 services dont : PrintService : accès à l’imprimante FileOpenService/FileSaveService : accès aux fichiers en lecture / écriture Etc. Java Web Start : Sécurité L’API JNLP (1/2) FileOpenService fos = (FileOpenService) ServiceManager .lookup("javax.jnlp.FileOpenService"); FileContents[] fcs = fos.openMultiFileDialog(null, null); for (FileContents file : fcs) System.out.println(file.getName()); // lecture possible Java Web Start : Sécurité L’API JNLP (2/2) • Facile à mettre en place • Technologies complémentaires Migration d’une applette en application desktop • Solutions gratuites ! Conclusion Merci de votre attention. Questions ? R. M. Ingénieurs 2000 IR3 uploads/S4/ r-m-jws-et-applette.pdf
Documents similaires










-
25
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 26, 2021
- Catégorie Law / Droit
- Langue French
- Taille du fichier 2.4670MB