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

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