Le développement d applications Web. François Charoy Pascal Molli Pascal Urso

Dimension: px
Commencer à balayer dès la page:

Download "Le développement d applications Web. François Charoy Pascal Molli Pascal Urso"

Transcription

1 Le développement d applications Web François Charoy Pascal Molli Pascal Urso

2 License Creative Commons Cette création est mise à disposition selon le Contrat Paternité-Pas d'utilisation Commerciale-Partage des Conditions Initiales à l'identique 2.0 France disponible en ligne par courrier postal à Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA. 2 CC by-nc-sa

3 Plan Historique & objectifs Présentation des Servlets Spécificité Sécurité Les JSP Architecture MVC web Framework JSF 3 CC by-nc-sa

4 Premier browser sur NeXt 4 CC by-nc-sa

5 Application Web 5 CC by-nc-sa

6 Web 1.0 vs Web CC by-nc-sa

7 Modèle de conversation 7 CC by-nc-sa

8 Short History 1980 : HTML : Scripts CGI Programmes C, shell scripts, perl, : Langages spécifiques ( scripting PHP, JSP, ASP (Server Side ( Scripting JavaScript (Client Side 2002 : Evolutions de HTML XHTML, CSS, JavaScript 8 CC by-nc-sa

9 Aggrégation 9 CC by-nc-sa

10 10 CC by-nc-sa

11 Mashups Composition d'application Web Composition/Filtre de sources de données Composition d'applications Google Maps + bases de données Yahoo Pipes CC by-nc-sa

12 Service Web/Rest Exposition des API Exemple : Twitter 12 CC by-nc-sa

13 Conclusion Les applications Web sont le cœur du Web-2.0 Et ça ne fait que commencer... Pour développer des appli web pertinentes: Vous avez besoin de «comprendre» le web Vous avez besoin de comprendre les problèmes techniques pour faire des applications Web évolutives, sécurisées, tolérantes aux pannes, composable Vous devez comprendre les problèmes spécifiques des applications web pour rendre les applications Web utilisables, maintenable et sûres 13 CC by-nc-sa

14 Developping Web Applications : Introduction to Servlets 14 CC by-nc-sa

15 Couches de protocole du WWW Modèle OSI 7. Couche application HTTP 6. Couche de présentation HTML, MIME 5. Couche de session non 4. Couche de transport TCP 3. Couche de réseau IPv4, IPv6 2. Couche de liaison whatever 1. Couche physique whatever 15 CC by-nc-sa

16 Requête HTTP Quelques lignes de texte Ligne de commande : commande, url, version de protocole Entête de requête [ligne vide] Corps de requête (optionel : paramêtres, appel soap, ) POST /fichier.ext HTTP/1.1 Host: Connection: Close Content-type: application/x-www-form-urlencoded Content-Length: 33 <nouvelle ligne> variable=valeur&variable2=valeur2 16 CC by-nc-sa

17 Commandes HTTP Demande sans effet de bord (en théorie) GET ressource HEAD information sur une ressource OPTIONS options de communication CONNECT utilisation de proxy TRACE journal de serveur Demande avec effet de bord (en théorie) POST soumission de données PUT ajout/màj d une ressource DELETE suppression d une ressource Usuellement seulement GET et POST 17 CC by-nc-sa

18 Réponse HTTP Quelques lignes de texte Ligne de statut : version de protocole, code, message Entête de réponse [ligne vide] Corps de requête (optionel : ressource, url, rép. soap, ) HTTP/ OK Date: Fri, 31 Dec :59:59 GMT Server: Apache/0.8.4 Content-Type: text/html Content-Length: 59 <TITLE>Exemple</TITLE> <P>Ceci est une page d'exemple.</p> 18 CC by-nc-sa

19 Quels sont les problèmes? Protocole HTTP Stateless Clients multiples et inconnus Identification des utilisateurs Maintient des sessions Requêtes et réponses statiques Application distribuée Concurrence d accès Sécurité Passage à l échelle 19 CC by-nc-sa

20 Les Servlets Permettre la programmation d'applications coté serveur Permettre l'extension d'un serveur Web en java Permettre la construction d'appli Web dynamique ~Equivalent fonctionnel des CGI en java 20 CC by-nc-sa

21 Ressources Référence API Tutorial Java Specification Requests Servlet JSP 21 CC by-nc-sa

22 Fonctionnement d'un servlet Un servlet lit les données envoyées par un client Web (transmises par le serveur) Données explicites (Formulaire) Données implicites (Request Header) Il génère un résultat Il envoit le résultat au client Données explicites (Page HTML) Données implicites (Response Header, Status code) Serveur Web Database Jndi Java App 22 CC by-nc-sa

23 Serveur d'application JEE Fournit un ensemble de services pour l'écriture d'application distribuées en Java Nommage Transactions Sécurité Conteneur Web Pourquoi Java? 23 CC by-nc-sa

24 Avantage des servlets Efficacité Utilisent des threads plutôt que des processus comme les CGI Pratique Librairie très développée (moins que PHP mais plus consistante) Portable Déployable quelque soit le serveur (ou presque) Sécurisé Fonctionne dans une machine virtuelle (plus maitrisable) Pas cher Nombreux serveurs gratuits 24 CC by-nc-sa

25 L architecture 25 CC by-nc-sa

26 La partie Web 26 CC by-nc-sa

27 Les containers de servlet Les servlets sont des composants Ils s'exécutent dans un container Ils doivent se conformer à une interface prédéfinie C est le container qui décide de leur instantiation Les containers Environnement d exécution des servlets ( jakarta.apache.org/tomcat ) Tomcat Jetty Weblogic Glassfish 27 CC by-nc-sa

28 L exécution d un servlet 28 CC by-nc-sa

29 Un premier servlet Le servlet HelloWorld Un servlet surcharge la classe HttpServlet Il doit implanter au moins une des méthodes doget dopost doput dodelete 29 CC by-nc-sa

30 Le servlet HelloWorld 30 CC by-nc-sa

31 Le fichier de configuration 31 CC by-nc-sa

32 Servlet 3.0 : annotations Avoid the configuration file 32 CC by-nc-sa

33 Un module Web Déployable et exécutable dans un serveur Web 33 CC by-nc-sa

34 L application Web Une archive war Déployée dans le serveur Web Web.xml = description de l application

35 Structure d une application Package déployable Composants Web : Servlet et JSP Ressources statiques (images) Classes java (helper) Librairies Descripteurs de déploiement (web.xml) 35 CC by-nc-sa

36 Execution d une requête 36 CC by-nc-sa

37 Exécution d une requête Objet HttpServlet Objets HttpServletRequest, HttpServletResponse Paramètres de requête, Header de requête Cycle de vie des servlet 37 CC by-nc-sa

38 La classe HttpServlet 38 CC by-nc-sa

39 doget et dopost 39 CC by-nc-sa

40 L'interface HttpServletRequest Fournit les informations sur la requête du client au serveur Principales méthodes (pour l'instant): String getparameter(string name) Enumeration getparameternames() Retourne une énumération de tous les noms de paramètres String[] getparametervalues() Retourne un tableau contenant toutes les valeurs des paramètres String getheader(string name) Enumeration getheadernames() Retourne une énumération de tous les noms des propriétés du header String[] getheadervalues() Retourne un tableau de toutes les valeurs du header 40 CC by-nc-sa

41 Les paramètres Les paramètres d'une requête sont accessibles dans l'objet (HttpServletRequest) request request.getparameter("paramname"); Il est possible de récupérer tous les noms des paramètres request.getparameternames() 41 CC by-nc-sa

42 Exemples paramètres 42 CC by-nc-sa

43 Exemple POST ladis2009/program.htm 43 CC by-nc-sa

44 Exemple POST (suite) 44 CC by-nc-sa

45 Nombre de requêtes HTTP : 2 (GET) (POST) 45 CC by-nc-sa

46 Les request headers 46 CC by-nc-sa

47 L'interface HttpServletResponse Objet fournissant les services pour envoyer la réponse à un client. Les principales méthodes sont: java.io.printwriter getwriter() Pour récupérer un printwriter qui permet d'envoyer du texte au client public void setcontentlength(int len) Positionne le Content-Length Header public void setcontenttype(java.lang.string type) Position le Content-Type header (exemple text/html) public void senderror(int sc, java.lang.string msg) throws java.io.ioexception Envoi un message d'erreur au client (cf code dans l'api) public void setheader(java.lang.string name, java.lang.string value) 47 CC by-nc-sa

48 web.xml Le fichier web.xml donne des instructions sur le déploiement du servlet dans le container web-app La description d'une Web Application Servlet La relation entre le nom du servlet et la classe qui l'implante Servlet-mapping La relation entre le nom du servlet et l'url qui permet d'y accéder Servlet 3.0 : remplacement possible par Plus «élégant» Moins «modulaire» 48 CC by-nc-sa

49 Les paramètres d'initialisation Les servlets peuvent avoir des paramètres d'initialisation. Ces paramètres peuvent être changés sans avoir à recompiler l'application <init-param> <param-name>testvalue</param-name> <param-value>12</param-value> <description>une valeur quelconque</description> </init-param> Ces paramètres peuvent être utilisés avec la méthode javax.servlet.servletconfig.getinitparameter() Annotation 49 CC by-nc-sa

50 Exemple 50 CC by-nc-sa

51 Le servlet mapping Permet de construire la relation entre un servlet et son URL <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/test/*</url-pattern> </servlet-mapping> Tous les urls correspondant à déclencherons l exécution du servlet Exemples /*.do /Test /cours/test/* 51 CC by-nc-sa

52 Servlet mapping /foo ) public class A extends HttpServlet { } public void doget(httpservletrequest req, HttpServletResponse res) {... MyServlet, urlpatterns={"/foo*", "/bar"}, initparams = value="hello (name="y", value=" World!") }) public class B extends HttpServlet { } CC by-nc-sa

53 Les éléments du chemin de requête ContextPath : le chemin du contexte de déploiement ServletPath : la section du chemin qui a déclenché le mapping PathInfo : la partie de la requête qui n est ni le ContextPath ni le ServletPath Request.getContextPath() Request.getServletPath() Request.getPathInfo() 53 CC by-nc-sa

54 Exemples 54 CC by-nc-sa

55 Autre propriétés Pour le mapping mime <mime-mapping> Pour les fichiers à charger quand un nom de répertoire est donné <welcome-file-list> Pour les pages d'erreur <error-page> Pour chaque code d'erreur on peut fixer une page spécifique Il y en a d'autres pour La sécurité Les taglibs Les références aux ressources utilisés par les servlets 55 CC by-nc-sa

56 Le cycle de vie d'un servlet Tous les servlets ont le même cycle de vie Le container charge le servlet La fonction init() est appelée (initialisation de variables, connection à des bases de données) Le servlet répond aux requêtes des clients Le container détruit le servlet La fonction destroy() est appelée (fermeture des connections) 56 CC by-nc-sa

57 Servlet Life Cycle 57 CC by-nc-sa

58 Ecrire une application Web 58 CC by-nc-sa

59 Ecrire une application Web Gestion des paramètres Application Session RequestDispatcher Listeners Filtres Wrapper Erreurs Sécurité 59 CC by-nc-sa

60 La visibilité (from jguru) 60 CC by-nc-sa

61 Le ServletConfig Objet utilisé par le container de servlet pour passer des valeurs lors de l'initialisation du servlet Obtenu avec Servlet.getServletConfig() Principales méthodes String getinitparameter(string name) Retourne la valeur d'un paramètre d'initialisation du servlet ServletContext getservletcontext() Permet de récupérer l'objet servletcontext String getservletname() Retourne le nom du servlet comme spécifié dans le fichier de description. Implanté par HttpServlet 61 CC by-nc-sa

62 Le Servlet Context Maintien des données pour toute l application Fournit le request dispatcher Données d initialisations pour toute l application Log Un ServletContext par application et par JVM 62 CC by-nc-sa

63 Le ServletContext Objet permettant au servlet de communiquer avec le servlet container Obtenu avec Servlet.getServletContext() Les principales méthodes de ServletContext Object getattribute(string name) Retourne un attribut du contexte void setattribute(string name, Object value) Ajoute ou remplace un objet dans le contexte String getinitparameter(string name) Retourne un paramètre d'initialisation de l'application void log(string msg) Ajoute un message dans le log file du servlet container 63 CC by-nc-sa

64 Le Servlet Context 64 CC by-nc-sa

65 Les attributs du context Valeurs disponibles pour toute l application 65 CC by-nc-sa

66 Le contexte Il est possible d'avoir des paramètres d'initialisation du contexte <context-param> <param-name>database</param-name> <param-value>testdb</param-value> <description>le nom de la base</description> </context-param> Ces paramètres peuvent être utilisés dans le servlet avec la méthode Javax.servlet.ServletContext getinitparameter() et Javax.servlet.ServletContext.getInitParameterNames() 66 CC by-nc-sa

67 La visibilité (from jguru) 67 CC by-nc-sa

68 Les Sessions Comment maintenir l état d un client au cours d une série de requêtes d un même utilisateur pendant un temps donné? HTTP est stateless Comment identifier le client? Où mettre les données de la session? 68 CC by-nc-sa

69 Servlet et sessions La gestion des sessions utilise les techniques classiques url rewriting Cookies Champs cachés dans les formulaires L'API HttpServlet fournit des fonctions pour gérer les sessions L'implantation est casi-transparente pour l'utilisateur 69 CC by-nc-sa

70 Session & HttpServletRequest C'est le paramètre request qui maintient les informations sur la session Les méthodes sont HttpSession request.getsession(boolean flag) Flag=true : retourne l'objet session courant ou en crée un s'il n'y en a pas. Flag=false : Retourne l'objet session courant ou null s'il n'y en a pas isrequestedsessionidvalid() Vrai si l'id de la session est valide dans le contexte courant isrequestedsessionidfromcookie() Vrai si l'id de la session vient d'un cookie isrequestedsessionidfromurl() Vrai si l'id de la session vient d'un URL 70 CC by-nc-sa

71 Création de la session 71 CC by-nc-sa

72 Requête dans la même session 72 CC by-nc-sa

73 L'objet HttpSession L'objet HttpSession permet de conserver des valeurs entre des appels d'un client Les principales méthodes sont Object getattribute(string name) Récupère la valeur de l'attribut par son nom Enumeration getattributenames() Retourne la liste de tous les attributs void setattribute(string name, Object value) Ajoute un attribut à la session String getid() Retourne l'identifiant de la session void invalidate() Invalide la session long getcreationtime() long getlastaccessedtime() long getmaxinactiveinterval() ServletContext getservletcontext() 73 CC by-nc-sa

74 Cookies Création de cookies 74 CC by-nc-sa

75 Cookies 75 CC by-nc-sa

76 Getting cookies values 76 CC by-nc-sa

77 Fin de vie d une session Au niveau programmatique Fermeture automatique en fixant la durée de vie (en minutes) <session-config> <session-timeout>30</session-timeout> </session-config> 77 CC by-nc-sa

78 Ecrire une application Web RequestDispatcher 78 CC by-nc-sa

79 Le RequestDispatcher L'objet RequestDispatcher est utilisé pour Transférer la requête à un autre programme Inclure la réponse d'un autre programme Pour obtenir le request dispatcher 79 CC by-nc-sa

80 L'utilisation du RequestDispatcher La requête peut être transférée rd.forward(request,response) L'utilisation classique consiste à avoir un servlet contrôleur qui transmet les commandes à des servlets spécialisés Pas d écriture sur la réponse avant le forward (exception) Le contrôle revient au servlet Ecritures sur la réponse ignorés après le forward La réponse peut être incluse dans la réponse en cours de construction rd.include(request,response) Ici, on peut implanter un équivalent de server side include. 80 CC by-nc-sa

81 Exemple d utilisation Démonstration! 81 CC by-nc-sa

82 82 CC by-nc-sa

83 Ecrire une application Web Listeners 83 CC by-nc-sa

84 Les listeners Les listeners sont des objets dont les méthodes sont invoquées en fonction du cycle de vie d'un servlet A la création et à la destruction d'un contexte (une appli) javax.servlet.servletcontextlistener Quand on modifie les attributs du contexte javax.servlet.servletcontextattributelistener A la création, la suppression, le timeout d'une session javax.servlet.httpsessionlistener A la création, modification, suppression d'un attribut de session javax.servlet.httpsessionattributelistener 84 CC by-nc-sa

85 Pourquoi des listeners? Pour une application Web Pas de point d entrée (main) Pas d exit() Comment faire pour initialiser l application? Pour une session Possibilité de démarrer à plusieurs adresses (bookmarks, recherche) Comment initialiser la session? Pas de fin de session explicite. Comment terminer la session? 85 CC by-nc-sa

86 Les listeners du contexte ServletContextListener void contextdestroyed(servletcontextevent sce) Notification that the servlet context is about to be shut down. void contextinitialized(servletcontextevent sce) Notification that the web application is ready to process requests. ServletContextAttributeListener void attributeadded(servletcontextattributeevent scab) Notification that a new attribute was added to the servlet context. void attributeremoved(servletcontextattributeevent scab) Notification that an existing attribute has been remved from the servlet context. void attributereplaced(servletcontextattributeevent scab) Notification that an attribute on the servlet context has been replaced. 86 CC by-nc-sa

87 Les listeners de session HttpSessionListener Notification that a session was created. Notification that a session was invalidated. HttpSessionAttributeListener Notification that an attribute has been added to a session. Notification that an attribute has been removed from a session. Notification that an attribute has been replaced in a session. 87 CC by-nc-sa

88 La déclaration d un listener web.xml <listener> <listener-class> cours.exemple1.sessioncounter </listener-class> </listener> Il n est pas nécessaire de préciser le type du Listener (pourquoi?) 88 CC by-nc-sa

89 Exemple 89 CC by-nc-sa

90 Un autre exemple 90 CC by-nc-sa

91 Exemple (Servlet 3.0) avec déclarations 91 CC by-nc-sa

92 Ecrire une application Web Filtres 92 CC by-nc-sa

93 Les filtres Un filtre est un morceau de code exécuté entre la requête et le «endpoint» Permettent de faire du pre et post-processing sur une requête Lire la requête, modifier la requête modifier la réponse, retourner des erreurs au client Même cycle de vie qu un servlet init / dofilter / destroy 93 CC by-nc-sa

94 Intérêt des filtres Permettent d étendre l application sans changer les servlets Services transversaux en entrée et en sortie En entrée Log des appels Sécurité Contrôle des paramètres En sortie Post processing du flux (XSLT) Compression (gzip) Fonctionnent comme un pipe & filter 94 CC by-nc-sa

95 Coder un filtre () dofilter Implanter la méthode Déclarer le filtre web.xml : <Filter> <Filter-mapping> Servlet 3 Même fonctionnement que pour un servlet Le transfert à la suite de la chaine se fait par la fonction () chain.dofilter Transfert à un autre filtre ou à un servlet ou une page HTML ou une page JSP La suite s exécute au retour de dofilter 95 CC by-nc-sa

96 Exemple (généré par NetBeans) 96 CC by-nc-sa

97 PreProcessing Affichage des paramètres 97 CC by-nc-sa

98 PotsProcessing Ajout de texte dans la sortie 98 CC by-nc-sa

99 Le servlet filtré 99 CC by-nc-sa

100 L exécution Sur le serveur 100 CC by-nc-sa

101 Wrapping Principe : encapsuler l objet requête ou l objet réponse pour modifier son comportement Encapsulation de request : surcharge HttpServletRequestWrapper Encapsulation de reponse : surcharge de HttpServletRequestResponse Ensuite il suffit de remplacer l objet wrappé. Le Wrapping peut aussi être utilisé dans des Servlets normaux. 101 CC by-nc-sa

102 Le Wrapping des réponses Plus compliqué que pour les requêtes Nécessite de récupérer la réponse d abord Ou d écrire un Writer spécialisé Utilisations classiques Caching des réponses Compression des réponses 102 CC by-nc-sa

103 Ecrire une application Web Erreurs 103 CC by-nc-sa

104 La gestion des erreurs Il est possible de définir les pages à afficher En fonction d'erreurs http En fonction d'exceptions java Dans web.xml <error-page> <exception-type> cours.event.eventexception </exception-type> <location>/erreur.html</location> </error-page> Pour une exception java <error-page> <error-code>404</error-code> <location>/404.html</location> </error-page> 104 CC by-nc-sa Pour une erreur Http

105 Codes HTTP 100 : Continue : Attente de la suite de la requête 200 : OK : Requête traitée avec succès 201 : Created : Requête traitée avec succès avec création d'un document 204 : No Content : Requête traitée avec succès mais pas d'information à renvoyer 303 : See Other : La réponse à cette requête est ailleurs 400 : Bad Request : La syntaxe de la requête est erronée 401 : Unauthorized : Une authentification est nécessaire 403 : Forbidden : L'authentification est refusée 404 : Not Found : Document non trouvé 414 : Request-URI Too Long : URI trop longue 500 : Internal Server Error : Erreur interne du serveur 105 CC by-nc-sa

106 Ecrire une application Web Sécurité 106 CC by-nc-sa

107 Servlet et sécurité (from servlet spec) A web application contains resources that can be accessed by many users. These resources often traverse unprotected, open networks such as the Internet. In such an environment, a substantial number of web applications will have security requirements. Authentication Access Control Data Integrity 107 CC by-nc-sa

108 Sécurité The Servlet Container support declarative security and programmatic security. Declarative : Security policies are declared in deployement descriptor (web.xml) or as annotation Programmatic security allow servlet developers to directly interact with security API of the container. Use it carefully (only if declarative security is not sufficient) 108 CC by-nc-sa

109 Declarative security <security-constraint> <web-resource-collection> <web-resource-name>salesinfo </web-resource-name> <url-pattern>/salesinfo/*</url-pattern> <http-method>get</http-method> <http-method>post</http-method> </web-resource-collection> <auth-constraint> <role-name>manager</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee>confidential </transportguarantee> </user-data-constraint> </security-constraint> 109 CC by-nc-sa

110 Security constraints 110 CC by-nc-sa

111 Modèle de sécurité Basé sur des rôles Groupes d utilisateurs Accès aux servlet/méthodes Ne fournit pas de gestion fine des droits d accès aux donnés Au déploiement, les rôles sont mappé sur des groupes sun-applicaton.xml (glassfish) <security-role-mapping> <role-name>pouet</role-name> <group-name>utilisateur</group-name> </security-role-mapping> 111 CC by-nc-sa

112 Security model Les users ayant endossé le rôle «pouet» ont le droit de requéter /World Peut être changé par le «deployer» 112 CC by-nc-sa

113 Le rôle «pouet» est associé au groupe «pouet» déclaré sur glassfish, pour l'application web MyHello 113 CC by-nc-sa

114 Gestion des utilisateurs (Tomcat) Propre au container web Tomcat : De manière statique dans le $TOMCAT_HOME/conf/tomcatusers.xml <tomcat-users> <role rolename="chat"/> <role rolename="souris"/> <user username="tom" password="miaou" roles="chat"/> <user name="admin" password="pw" roles="chat,souris" /> </tomcat-users> 114 CC by-nc-sa

115 Gestion des utilisateurs Définis dans un domaine FileRealm JDBCRealm CustomRealm LDAPRealm, CC by-nc-sa

116 Déclarer les users dans le «runtime» 116 CC by-nc-sa

117 Authentication A web client can authenticate a user to a web server using one of the following mechanisms: HTTP(S) Basic Authentication HTTP Digest Authentication HTTP(S) Client Authentication Form Based Authentication Programmatic Authentication 117 CC by-nc-sa

118 Authentication : Basic Couple username / password Définie par la spécification HTTP/1.0 Pas sécurisé passwords envoyé en encoding base64 le serveur cible n est pas authentifié Requière HTTPS ou IPSEC/VPN pour assurer plus de sécurité 118 CC by-nc-sa

119 Security model Contrainte de sécurité 119 CC by-nc-sa Authentication «BASIC» Déclaration de rôle

120 Accès sécurisé à la servlet «World» 120 CC by-nc-sa

121 Authentication : Digest <login-config> <auth-method>digest</auth-method> <realm-name>digest Authentication Example</realm-name> </login-config> Similaire à l authentication basic Couple username / password Gestion des utilisateurs par le container web Password non transmis Le navigateur envoi un digest : hash cryptographié du username/ password/uri/nonce (usage unique) Danger : stockage des passwords en clair pour calculer le digest Peu implanté 121 CC by-nc-sa

122 Authentication «form login» web.xml <login-config> <auth-method>form</auth-method> <form-login-config> <form-login-page>/pagedelogin.jsp</form-login-page> <form-error-page>/pagederreur.jsp</form-error-page> </form-login-config> </login-config> pagedelogin.jsp <form action="j_security_check" method="post"> <input type="text" name="j_username"/> <input type="password" name="j_password"/> <input type="submit" value="connexion"/> </form> 122 CC by-nc-sa

123 David Geary Nov 30, CC by-nc-sa

124 Authentication «form login» Même problèmes que l authentication BASIC password transmis en clair Stockage des password côté serveur Gestion des utilisateurs par le container Requière aussi HTTPS ou IPSEC/VPN pour assurer plus de sécurité 124 CC by-nc-sa

125 Authentication «programmatique» Methodes de l interface HttpServletRequest (J EE 6) : authenticate() Demande au container d effectuer l authentification login() avec login/password logout() getremoteuser() Nom de l utilisateur (null si personne) isuserinrole() getuserprincipal() Retourne le java.security.principal correspondant à l utilisateur 125 CC by-nc-sa

126 Sécurité et annotation (servlet 3) Annotation sur une servlet OU une do-méthode (doget, doput, dohead, ) Déclaration des ("role1") "role2"}) Mode de transport (HTTPS ou 126 CC by-nc-sa

127 Sécurité et annotation @TransportProtected public class TestServlet extends HttpServlet protected void dopost(httpservletrequest req, HttpServletResponse res) throws IOException, ServletException protected void dotrace(httpservletrequest req, HttpServletResponse res) throws IOException, ServletException {... } } 127 CC by-nc-sa

128 Accès sécurisé à une méthode @TransportProtected public class TestServlet extends HttpServlet protected void dopost(httpservletrequest req, HttpServletResponse res) throws IOException, ServletException {... } protected void dotrace(httpservletrequest req, HttpServletResponse res) throws IOException, ServletException {... } } 128 CC by-nc-sa

129 Conclusion Servlet 129 CC by-nc-sa

130 Conclusion The servlet model is a component model Servlet developpers have to conform to the model (implements HttpServlet class) The Servlet container offers: Web application lifecycle management Distributed container Security management Servlet composition (by dispatching) Interception (through filters) Session management facilities 130 CC by-nc-sa

131 What we have not seen Distributed Servlet container over a cluster of computers Asynchronous servlet (Servlet 3.0) Web Fragment : Make Web application by composition web application fragment CC by-nc-sa

132 Servlet limitations Request/Response model can decrease maintainability... The business logic of application are in servlets HTML code or XHTML code is embedded in servlet... Need an higher abstraction level to leverage maintainability problems To speed up coding stage (RAD, rapid application development) CC by-nc-sa

Le développement d applications Web

Le développement d applications Web Le développement d applications Web Plan Principes des applications Web Origine et utilité des Servlets Présentation des Servlets Les JSP La Standard TAG Library Servlet, JSP et accès aux SGBD Les technologies

Plus en détail

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique - 2010-2011

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique - 2010-2011 1 / 34 Développement Web - Servlet Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer L3 Pro Informatique - 2010-2011 2 / 34 Plan Plan 1 Introduction 2 Servlet

Plus en détail

Web Tier : déploiement de servlets

Web Tier : déploiement de servlets Web Tier : déploiement de servlets 1 / 35 Plan 1 Introduction 2 Servlet : Principe de fonctionnement 3 Création et développement sur un serveur JEE 4 Quelques méthodes de l API des servlets 5 Utilisation

Plus en détail

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4 Les exemples cités tout au long de cet ouvrage sont téléchargeables à l'adresse suivante : http://www.editions-eni.fr. Saisissez la référence ENI de l'ouvrage EP5EJAV dans la zone de recherche et validez.

Plus en détail

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture

Plus en détail

HTTP 1.1. HyperText Transfer Protocol ... ... TCP IP ...

HTTP 1.1. HyperText Transfer Protocol ... ... TCP IP ... HTTP 1.1 Place de http dans le modèle osi : HyperText Transfer Protocol...... TCP IP...... HTTP est un protocole «sans état» : chaque page WEB est transmise dans une connexion séparée (sauf pour les connections

Plus en détail

Applications Web et servlets Java

Applications Web et servlets Java Département de génie logiciel et des TI LOG660 - Base de données haute performance Applications Web et servlets Java Application Web Une application Web répartie sur trois couches (three-tier Web application)

Plus en détail

L3 informatique TP n o 2 : Les applications réseau

L3 informatique TP n o 2 : Les applications réseau L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique

Plus en détail

JSP/Servlets Enchaînement de pages. B. Mermet 2009

JSP/Servlets Enchaînement de pages. B. Mermet 2009 JSP/Servlets Enchaînement de pages B. Mermet 2009 Spécification d'une adresse cible Adresse absolue protocole://adresse Adresse relative à l'application /adressepage Adresse relative à la page adressepage

Plus en détail

SIMOTION - Servlets. Introduction 1. Fonctions implémentées 2. Contenu de la livraison 3. Installation 4. Implémentation de l'api Servlet

SIMOTION - Servlets. Introduction 1. Fonctions implémentées 2. Contenu de la livraison 3. Installation 4. Implémentation de l'api Servlet Introduction 1 Fonctions implémentées 2 Contenu de la livraison 3 Installation 4 Manuel de programmation Implémentation de l'api Servlet 5 Elaboration de servlets utilisateur 6 Fichier de configuration

Plus en détail

Tarak CHAARI Application Web en Java ISECS 2

Tarak CHAARI Application Web en Java ISECS 2 Programmation d Application Web avec Java Tarak CHAARI Tarak.chaari@isecs.rnu.tn Université de Sfax, 2009-20102010 Tarak CHAARI Application Web en Java Version adaptée ISECS du cours de Mr Walid MAHDI

Plus en détail

Développement des Systèmes d Information

Développement des Systèmes d Information Développement des Systèmes d Information Axe ISI Camille Persson Institut Fayol / LSTI / ISCOD École Nationale Supérieure des Mines de Saint-Etienne 158 cours Fauriel, 42000 Saint-Etienne persson@emse.fr

Plus en détail

Partie 7 : Le développement d'applications web

Partie 7 : Le développement d'applications web Partie 7 : Le développement d'applications web Cette partie contient plusieurs chapitres : Les servlets : plonge au coeur de l'api servlet qui est un des composants de base pour le développement d'applications

Plus en détail

Projet Java EE Approfondi

Projet Java EE Approfondi EISTI Projet Java EE Approfondi Manuel d installation du framework Stripes Amaury Languillat, Yann Gonzalez, Arnaud Recher, Vincent Laronde, Anys Mechkar 10 Manuel d installation Téléchargement On part

Plus en détail

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence

Plus en détail

Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/

Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Webographie The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Les slides de cette présentation

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

Application Web et J2EE

Application Web et J2EE Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis

Plus en détail

Cours Web : Introduction

Cours Web : Introduction Cours Web : Introduction Catherine Letondal letondal@pasteur.fr Institut Pasteur Cours Web IEB 2005 p.1/?? Pourquoi un cours Web? le Web : c est stratégique en biologie c est un bon exemple de système

Plus en détail

Java pour le Web. Cours Java - F. Michel

Java pour le Web. Cours Java - F. Michel Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications

Plus en détail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean. Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime

Plus en détail

Appli et Services WEB: Architecture REST

Appli et Services WEB: Architecture REST Appli et : Erick Stattner LAMIA Laboratory University of the French West Indies and Guiana, France erick.stattner@univ-ag.fr Guadeloupe, 2013 Erick Stattner Appli et : 1 / 78 Description du cours Objectif:

Plus en détail

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 Informations juridiques Copyright 2010 Adobe Systems Incorporated and its licensors. All rights reserved. Administration d Adobe LiveCycle Mosaic 9.5 13 octobre

Plus en détail

Architecture Orientée Service, JSON et API REST

Architecture Orientée Service, JSON et API REST UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API

Plus en détail

Apache Tomcat 8 Guide d'administration du serveur Java EE 7 sous Windows et Linux

Apache Tomcat 8 Guide d'administration du serveur Java EE 7 sous Windows et Linux Avant-propos 1. À qui s adresse ce livre? 11 2. Les pré-requis 12 Préambule 1. Rappel sur les architectures Internet/Intranet/Extranet 13 1.1 Le protocole HTTP 14 1.1.1 Les méthodes HTTP 16 1.1.2 Les codes

Plus en détail

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Failles XSS : Principes, Catégories Démonstrations, Contre mesures HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Séminaire 15 ans HSC Failles XSS : Principes, Catégories Démonstrations,

Plus en détail

Applications et Services WEB: Architecture REST

Applications et Services WEB: Architecture REST Applications et : Erick Stattner Laboratoire LAMIA Université des Antilles et de la Guyane France erick.stattner@univ-ag.fr Guadeloupe 2014-2015 Erick Stattner Applications et : 1 / 90 Description du cours

Plus en détail

Kit d'intégration FAS+

Kit d'intégration FAS+ Guide d'intégration de l'application IAM - Annexe Kit d'intégration FAS+ Date 24/08/2012 Version 3.0 TABLE DES MATIÈRES 1 Introduction...3 2 Kit d'intégration FAS+...3 2.1 Pages JSP...4 2.2 Classes Java...7

Plus en détail

(structure des entêtes)

(structure des entêtes) Aide mémoire HTTP (structure des entêtes) Fabrice HARROUET École Nationale d Ingénieurs de Brest http://www.enib.fr/~harrouet/ enib 1/10 Structure générale d une requête Requête HTTP méthode ressource

Plus en détail

A6 - HTTP ESIROI 2014-2015

A6 - HTTP ESIROI 2014-2015 A6 - HTTP ESIROI 2014-2015 HTTP HyperText Transfer Protocol Protocole synchrone 3 version : HTTP/0.9 (obsolète) HTTP/1.0 (rare) HTTP/1.1 HTTP - fonctionnement Requête Réponse Icones : http://www.visualpharm.com/

Plus en détail

Chapitre 4 Les Servlets. 1. Qu'est-ce qu'une Servlet? 1.1 Présentation. 1.2 Requêtes HTTP

Chapitre 4 Les Servlets. 1. Qu'est-ce qu'une Servlet? 1.1 Présentation. 1.2 Requêtes HTTP 210 Les Servlets 1. Qu'est-ce qu'une Servlet? 1.1 Présentation Les Servlets sont la base de la programmation Java EE. La conception d'un site Web dynamique en Java repose sur ces éléments. Une Servlet

Plus en détail

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068 HTTP/1.1 RFC 2068 1 Caractéristiques Niveau application Sans état Tout transfert de données Au dessus du protocole TCP Largement utilisé dans le World Wide Web Utilise les normes : URI (Uniform Resource

Plus en détail

Exercice sur les EJB Session avec état

Exercice sur les EJB Session avec état Exercice sur les EJB Session avec état Soit un site de commerce électronique appartenant à un fournisseur de matériel informatique. Une page principale permet à l utilisateur de s inscrire, donc de saisir

Plus en détail

JavaServer Pages (JSP)

JavaServer Pages (JSP) JavaServer Pages (JSP) XVIII-1 Prérequis pour ce cours Ce cours a trait à la programmation Java coté serveur Il faut connaître un minimum de technologie J2EE Il faut connaître les servlets XVIII-2 Motivation

Plus en détail

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hébert.eheb@yahoo.fr

Plus en détail

Programmation d applications distribuées

Programmation d applications distribuées Programmation d applications distribuées François Charoy Université Henri Poincaré 8 octobre 2007 Première partie I Développement d applications distribuées Objectifs du cours Comprendre ce qu est une

Plus en détail

Cahier de charges (Source : "Java EE - Guide de développement d'applications web en Java" par Jérôme Lafosse) Module. Site Web dynamique JSP / Servlet

Cahier de charges (Source : Java EE - Guide de développement d'applications web en Java par Jérôme Lafosse) Module. Site Web dynamique JSP / Servlet Cahier de charges (Source : "Java EE - Guide de développement d'applications web en Java" par Jérôme Lafosse) Module Site Web dynamique JSP / Servlet Sujet : betaboutique Soutenance le 04 / 01 /2013 &

Plus en détail

Mise en œuvre de serveurs d application TD n o 4

Mise en œuvre de serveurs d application TD n o 4 Master IST-IE 2007 08 UE 203d Mise en œuvre de serveurs d application TD n o 4 1 Introduction Dans ce TD, vous implanterez une application cliente, vous étendrez la logique métier sans modifier les clients,

Plus en détail

WebSSO, synchronisation et contrôle des accès via LDAP

WebSSO, synchronisation et contrôle des accès via LDAP 31 mars, 1er et 2 avril 2009 WebSSO, synchronisation et contrôle des accès via LDAP Clément Oudot Thomas Chemineau Sommaire général Synchronisation d'identités WebSSO et contrôle des accès Démonstration

Plus en détail

Les architectures 3-tiers Partie I : les applications WEB

Les architectures 3-tiers Partie I : les applications WEB Les architectures 3-tiers Partie I : les applications WEB 1 Evolutions logicielles Des objets aux composants... Objets JavaBeans, Objets ActiveX, Objets COM,... 1 Evolutions logicielles Des objets aux

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

10. Base de données et Web. OlivierCuré [ocure@univ-mlv.fr]

10. Base de données et Web. OlivierCuré [ocure@univ-mlv.fr] 10. Base de données et Web 313 Evolution de l'information Ordre de grandeur : 314 1Mo : 1 gros roman 200Mo : ce que mémorise un être humain dans sa vie. 900Mo : information contenue dans le génome d'une

Plus en détail

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion HTTP IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin HTTP Introduction et architecture Messages Authentification Conclusion 1 HTTP Introduction et architecture Hypertext Transfert Protocol URI (Uniform

Plus en détail

Le protocole HTTP. Olivier Aubert 1/40

Le protocole HTTP. Olivier Aubert 1/40 Le protocole HTTP Olivier Aubert 1/40 Liens http://www.jmarshall.com/easy/http/ Références : RFC1945 (HTTP1.0), RFC2616 (HTTP1.1), RFC822 (format des entêtes), RFC2396 (syntaxe des URL), RFC1521 (types

Plus en détail

pac4j : la librairie de sécurité pour Java par Jérôme LELEU

pac4j : la librairie de sécurité pour Java par Jérôme LELEU pac4j : la librairie de sécurité pour Java par Jérôme LELEU www.parisjug.org Copyright @ 2014 ParisJug. Licence CC - Creatve Commons 2.0 France Paternité - Pas d'utlisaton Commerciale - Partage des Conditons

Plus en détail

Architecture J2EE. Thierry Lecroq (merci à Alexandre Pauchet (INSA Rouen)) Université de Rouen FRANCE. Thierry Lecroq (Univ. Rouen) J2EE 1 / 16

Architecture J2EE. Thierry Lecroq (merci à Alexandre Pauchet (INSA Rouen)) Université de Rouen FRANCE. Thierry Lecroq (Univ. Rouen) J2EE 1 / 16 Architecture J2EE Thierry Lecroq (merci à Alexandre Pauchet (INSA Rouen)) Université de Rouen FRANCE Thierry Lecroq (Univ. Rouen) J2EE 1 / 16 Plan 1 Historique 2 Architecture J2EE 3 J2EE et applications

Plus en détail

Plan. Department of Informatics

Plan. Department of Informatics Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Special Topics 7. Prise de recul critique Enterprise

Plus en détail

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

1. Installation d'un serveur d'application JBoss:

1. Installation d'un serveur d'application JBoss: EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 4 EJB3, Serveur d'application JBoss 1. Installation d'un serveur d'application JBoss: télécharger l'archive du serveur JBoss à l'adresse: http://sourceforge.net/projects/jboss/files/jboss/jboss-5.0.0.ga/jboss-5.0.0.ga.zip/download

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

TP 5 Serveur REST, tests et premier client REST

TP 5 Serveur REST, tests et premier client REST TP 5 Serveur REST, tests et premier client REST Xavier de Rochefort xderoche@labri.fr - labri.fr/~xderoche 13 mai 2014 Résumé Les derniers TP vous ont guidé dans ➊ la mise en place d un serveur REST avec

Plus en détail

Evolutions du Web et des langages

Evolutions du Web et des langages Evolutions du Web Evolutions du Web et des langages WEB statique Ces pages sont écrites en HTML Les pages demandées sont identiques quelque soit La personne qui les demande L heure de la demande Etc. WEB

Plus en détail

Apache Tomcat 8. Guide d administration du serveur Java EE 7 sous Windows et Linux. Apache Tomcat 8. Apache Tomcat 8

Apache Tomcat 8. Guide d administration du serveur Java EE 7 sous Windows et Linux. Apache Tomcat 8. Apache Tomcat 8 Avant-propos Préambule La plate-forme Java EE Installation et configuration Administration du serveur Déploiement et gestion des applications La sécurité du serveur et des applications Analyse et supervision

Plus en détail

La sécurisation d applications

La sécurisation d applications Université Toulouse 1 Sciences Sociales 10 mars 2008 Les firewalls ne suffisent plus Mais ont-ils jamais été suffisants? La protection à 100% n existe pas. De plus certains protocoles doivent absolument

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

Outil de planification en ligne pour des créations de rendez-vous ou de sondage Outil de planification en ligne pour des créations de rendez-vous ou de sondage Centre de Ressources Informatiques (C.R.I.) d'orléans Université d'orléans 4-6 rue Léonard de Vinci, 45061 Orléans Cedex

Plus en détail

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI OWASP Open Web Application Security Project Jean-Marc Robert Génie logiciel et des TI A1: Injection Une faille d'injection, telle l'injection SQL, OS et LDAP, se produit quand une donnée non fiable est

Plus en détail

Pages WWW interactives et CGI

Pages WWW interactives et CGI Pages WWW interactives et CGI cgi-intro Pages WWW interactives et CGI Code: cgi-intro Originaux url: http://tecfa.unige.ch/guides/tie/html/cgi-intro/cgi-intro.html url: http://tecfa.unige.ch/guides/tie/pdf/files/cgi-intro.pdf

Plus en détail

Patrons de conception [Krakowiak06]

Patrons de conception [Krakowiak06] Architectures Outils Java Servlets État servlet JSP Accès BD Conception Patrons de conception [Krakowiak06] 284 Définition ensemble de règles (définitions d éléments, principes de composition, règles d

Plus en détail

EJB avancés. Transactions Sécurité Ressources Performances

EJB avancés. Transactions Sécurité Ressources Performances EJB avancés Transactions Sécurité Ressources Performances Les transactions Concept fondamental dans les applications distribuées Indispensable pour une exécution sure des services Difficile à mettre en

Plus en détail

T. HSU Sécurité des programmes PHP

T. HSU Sécurité des programmes PHP Sécurité des programmes PHP T. HSU IUT de LENS, Département informatique November 13, 2012 Part I Introduction à PHP Fonctionnement 1 : Requète PHP 2 : Aller chercher la page MySQL Page PHP Moteur PHP

Plus en détail

Méta-connaissances pour générer des programmes sur le Web

Méta-connaissances pour générer des programmes sur le Web Méta-connaissances pour générer des programmes sur le Web Basile STARYNKEVITCH http://starynkevitch.net/basile/ basile@starynkevitch.net (à titre privé, sans rapport avec mon employeur CEA-LIST) Séminaire

Plus en détail

Architectures Web Services RESTful

Architectures Web Services RESTful Architectures Web Services RESTful Alexandre Denis Alexandre.Denis@inria.fr Inria Bordeaux Sud-Ouest France ENSEIRB PG306 REST REST Representational State Transfer Roy Fielding (2000) Décollage vers 2006-2007

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

Module BD et sites WEB

Module BD et sites WEB Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD

Plus en détail

T.P. 3 Base de données, JDBC et Mapping Objet-relationnel

T.P. 3 Base de données, JDBC et Mapping Objet-relationnel EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 3 Base de données, JDBC et Mapping Objet-relationnel L'objectif de ce TP est de vous faire pratiquer l'api JDBC qui permet d'accéder à une base de données

Plus en détail

Développement OSGi dans Eclipse

Développement OSGi dans Eclipse B Développement OSGi dans Eclipse L objectif de cette annexe est de venir en complément des chapitres de la partie V afin de décrire la manière d utiliser l outil Eclipse afin de développer et de tester

Plus en détail

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal SSO open source avec CAS Introduction Pourquoi le Single Sign-On? Principes du SSO sur le

Plus en détail

ESUP Portail. ESUP Portail Un ENT universitaire! Contexte. Objectifs d ESUP Portail. Grandes orientations technologiques

ESUP Portail. ESUP Portail Un ENT universitaire! Contexte. Objectifs d ESUP Portail. Grandes orientations technologiques ESUP Portail Un ENT universitaire! ESUP Portail Présentation générale du projet Jean-Michel Antoine Jean-Guy Avelin Raymond Bourges Architecture Intégration au SI de l établissement Développement de canaux

Plus en détail

Utilisation de Jakarta Tomcat

Utilisation de Jakarta Tomcat ISI 1022 : Déploiement d applications Web Jean-Noël Sorenti. Année 2002/2003 Déploiement d application Web Utilisation de Jakarta Tomcat ISI 1022 : 1 ISI 1022 : Déploiement d applications Web Une application

Plus en détail

Environnements de Développement

Environnements de Développement Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement BEN ABDELJELIL HASSINE Mouna m.bnaj@yahoo.fr Développement des systèmes d Information Syllabus

Plus en détail

Jahia CMS ET Portal Version 5.0

Jahia CMS ET Portal Version 5.0 Jahia CMS ET Portal Version 5.0 Développer un portlet JSR168 Avec Jahia CMS et Portal Version 5.0 V.1 Français Jahia Ltd Suisse 9, route des jeunes 1227 Carouge p. 2/47 TERMES ET CONDITIONS D UTILISATION

Plus en détail

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand Centrale Réseaux

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un

Plus en détail

Vulnérabilités et sécurisation des applications Web

Vulnérabilités et sécurisation des applications Web Rencontres SPIRAL 25/02/03 Vulnérabilités et sécurisation des applications Web Pourquoi les firewalls sont impuissants face à certaines attaques patrick.chambet@edelweb.fr http://www.edelweb.fr http://www.chambet.com

Plus en détail

CHAPITRE 1. Introduction aux web services. 1.1 Définition. Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C#

CHAPITRE 1. Introduction aux web services. 1.1 Définition. Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C# CHAPITRE 1 Introduction aux web services Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C# NetBeans JavaScript Eclipse Objective C Xcode PHP HTML Objectifs du chapitre : Ce

Plus en détail

Une application bidon avec REST, SQL et Unicode, juste comme exemple

Une application bidon avec REST, SQL et Unicode, juste comme exemple Une application bidon avec REST, SQL et Unicode, juste comme exemple Stéphane Bortzmeyer Première rédaction de cet article le 25 juillet 2007. Dernière mise à jour le 31

Plus en détail

Serveurs de noms Protocoles HTTP et FTP

Serveurs de noms Protocoles HTTP et FTP Nils Schaefer Théorie des réseaux (EC3a) Serveurs de noms Protocoles HTTP et FTP Théorie des réseaux (EC3a) Séance 7 Pourquoi DNS? Internet est une structure hiérarchique et arborescente de réseaux et

Plus en détail

Le serveur HTTPd WASD. Jean-François Piéronne

Le serveur HTTPd WASD. Jean-François Piéronne Le serveur HTTPd WASD Jean-François Piéronne Sommaire Caractéristiques Architecture générale Performances Intégration dans OpenVMS Caractéristiques Implémentation complète HTTP/1.0 Méthodes "GET", "HEAD",

Plus en détail

Application de lecture de carte SESAM-Vitale Jeebop

Application de lecture de carte SESAM-Vitale Jeebop Application de lecture de carte SESAM-Vitale Jeebop Présentation Le module de lecture de carte SESAM-Vitale Jeebop est une application Java Web Start, c'est à dire une application Java qui se télécharge

Plus en détail

Service d'authentification LDAP et SSO avec CAS

Service d'authentification LDAP et SSO avec CAS Service d'authentification LDAP et SSO avec CAS Clé de l'extension : ig_ldap_sso_auth 2006-2007, Michaël Gagnon, Ce document est publié sous la licence open source, disponible au

Plus en détail

Hébergement de sites Web

Hébergement de sites Web Hébergement de Solutions complètes et évolutives pour l hébergement de sites Web dynamiques et de services Web sécurisés. Fonctionnalités Serveur Web Apache hautes performances Apache 1. et.0 1 avec prise

Plus en détail

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1 E-TRANSACTIONS Guide du programmeur API Plug-in Version 1.1 Avertissements : Le fichier Version.txt précise l'environnement dans lequel l API a été compilée et testée. L'installation de l API sur tout

Plus en détail

Cross-Site Request Forgery (CSRF)

Cross-Site Request Forgery (CSRF) TIW4-TP1 CSRF 1 Cross-Site Request Forgery (CSRF) Copyright c 2006-2010 Wenliang Du, Syracuse University. The development of this document is funded by the National Science Foundation s Course, Curriculum,

Plus en détail

SIO-65291 Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

SIO-65291 Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault SIO-65291 Page 1 de 5 1- Objectifs généraux Applications Web dynamiques Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault acquérir les principes et concepts fondamentaux dans le domaine d'applications

Plus en détail

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer

Plus en détail

Site Web de paris sportifs

Site Web de paris sportifs Conception Nom HENAUD Benoît Numéro d auditeur 05-39166 Version V1.1 Date de mise à jour 15/05/2008 1/18 Table des matières 1. Objectif du document... 3 2. Architecture... 4 2.1. Contraintes techniques...

Plus en détail

JOnAS 5. Serveur d application d

JOnAS 5. Serveur d application d JOnAS 5 Serveur d application d dynamique Agenda En quelques mots Caractéristiques essentielles Zoom sur le versioning 2 Bull, 2008 Serveur d application dynamique JOnAS - Serveur d application Open Source

Plus en détail

CAS, un SSO web open source. 14h35-15h25 - La Seine A

CAS, un SSO web open source. 14h35-15h25 - La Seine A CAS, un SSO web open source 14h35-15h25 - La Seine A CAS, un SSO web open source Jérôme LELEU Committer CAS Architecte du CAS chez SFR https://github.com/leleuj @leleuj 27 au 29 mars 2013 Sommaire SSO

Plus en détail

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI Institut Galilée Année 2014-2015 TP WEBSERVICES Programmation et Logiciels sûrs Master 2 PLS Résumé Ce TP s appuie sur le cours de C. Fouqueré traitant des Environnements et Langage Évolués, ainsi que

Plus en détail

Java Naming and Directory Interface

Java Naming and Directory Interface Introduction Java Naming and Directory Interface Gaël Thomas gael.thomas@lip6.fr Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard

Plus en détail

Architectures en couches pour applications web Rappel : Architecture en couches

Architectures en couches pour applications web Rappel : Architecture en couches Rappel : Architecture en couches Une architecture en couches aide à gérer la complexité : 7 Application 6 Presentation 5 Session Application Les couches hautes dépendent des couches basses 4 Transport

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

INF8007 Langages de script

INF8007 Langages de script INF8007 Langages de script Sockets et serveur 1/18 INF8007 Langages de script Sockets et serveur Michel Desmarais Génie informatique et génie logiciel École Polytechnique de Montréal Hiver, 2014 INF8007

Plus en détail

Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco

Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco Livre blanc Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco Présentation Ce document examine la prise en charge de la programmabilité sur l'infrastructure axée

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin Sécurité des sites Web Pas un cours un recueil du net INF340 Jean-François Berdjugin Vulnérabilité Définition (wikipédia) : Dans le domaine de la sécurité informatique, une vulnérabilité est une faiblesse

Plus en détail

Authentification et contrôle d'accès dans les applications web

Authentification et contrôle d'accès dans les applications web Authentification et contrôle d'accès dans les applications web Quelques Rappels Objectifs : contrôler que seulement Certains utilisateurs Exécutent certaines opérations Sur certains objets Trois entités

Plus en détail

Traitement des données de formulaires. Accès aux BD avec JDBC Servlets - M. Baron - Page

Traitement des données de formulaires. Accès aux BD avec JDBC Servlets - M. Baron - Page Organisation du cours sur les Servlets Servlets et API Traitement des données de formulaires Architecture de développement Cycle de vie Suivi de session Collaboration de Servlets Sécurité : authentification

Plus en détail

Présentation du cours. Sécurité dans Java EE. Plan (1/2) Plan (2/2) Généralités sur la sécurité

Présentation du cours. Sécurité dans Java EE. Plan (1/2) Plan (2/2) Généralités sur la sécurité Présentation du cours Sécurité dans Java EE Université de Nice - Sophia Antipolis Richard Grin Version 0.17 17/9/13 Ce cours montre comment sécuriser une application Java EE : réserver l accès de pages

Plus en détail