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

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

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

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

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

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

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

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

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

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

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

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

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

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

(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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. 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

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

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

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

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

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

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

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

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

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

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

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

Groupe Eyrolles, 2005, ISBN : 2-212-11406-0

Groupe Eyrolles, 2005, ISBN : 2-212-11406-0 Groupe Eyrolles, 2005, ISBN : 2-212-11406-0 10 L atelier MyEclipse Eclipse facilite considérablement le développement Java en équipe. Son puissant éditeur, associé à des fonctionnalités de complétion de

Plus en détail

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT DOCUMENTATION CAS A DESTINATION DES SERVICES TIERS Titre descriptif du document Référence du document REFO-DT-ENTV2-ServeurCAS-v1.2.docx Nom du fichier REFO-DT-ENTV2-ServeurCAS-v1.2.docx Version du document

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

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

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

Java Aspect Components (JAC) http://jac.objectweb.org

Java Aspect Components (JAC) http://jac.objectweb.org Java Aspect Components (JAC) JAC http://jac.objectweb.org 2 Lionel Seinturier Lionel.Seinturier@lip6.fr Université Pierre & Marie Curie 23/2/06 Un framework de programmation par aspect pour Java Projet

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

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

Introduction à HTTP. Chapitre 3 3.1 HTTP 0.9

Introduction à HTTP. Chapitre 3 3.1 HTTP 0.9 Chapitre 3 Introduction à HTTP L HyperText Transfer Protocol, plus connu sous l abréviation HTTP (littéralement protocole de transfert hypertexte ) est un protocole de communication client-serveur développé

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

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

Messagerie asynchrone et Services Web

Messagerie asynchrone et Services Web Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS

Plus en détail

Documentation CAS à destination des éditeurs

Documentation CAS à destination des éditeurs Documentation CAS à destination des éditeurs Sommaire Préambule... 1 Présentation de CAS...2 Intérêt... 2 Fonctionnement de base...2 Synoptique des échanges (1ère connexion)... 2 Synoptique des échanges

Plus en détail

Projet de Veille Technologique

Projet de Veille Technologique Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...

Plus en détail

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques Introduction 1. Introduction 11 2. La plateforme de développement web de Microsoft 11 3. Définition du modèle de programmation MVC 14 4. L'historique d'asp.net MVC 17 4.1 ASP.NET MVC 1 (2008) 17 4.2 ASP.NET

Plus en détail

API ONE-TIME PASSWORD

API ONE-TIME PASSWORD PLATEFORME SAAS D'ENVOI DE SMS Guide du débutant API ONE-TIME PASSWORD UTILISER LA PLATEFORME SMSMODE DOCUMENTATION TECHNIQUE QU'EST-CE QUE L'API OTP? Notre solution technique pour l OTP (One Time Password)

Plus en détail

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13 WEBSERVICES Michael Fortier Master Informatique 2ème année fortier@lipn.univ-paris13.fr A308, Université de Paris 13 https ://lipn.univ-paris13.fr/ fortier/enseignement/webservices/ Sommaire 1 Rappels

Plus en détail

Aspects techniques : guide d interfaçage SSO

Aspects techniques : guide d interfaçage SSO COURDECO Aspects techniques : guide d interfaçage SSO Septembre 2011 Cette annexe présente succinctement le système d'authentification unique (SSO : single sign on, authentification unique) utilisé dans

Plus en détail

WebDAV en 2 minutes. Tous ces objectifs sont complémentaires et ils sont atteints grâce au seul protocole WebDAV. Scénarii

WebDAV en 2 minutes. Tous ces objectifs sont complémentaires et ils sont atteints grâce au seul protocole WebDAV. Scénarii WebDAV en 2 minutes le but affirmé du groupe de travail WebDAV (DAV) est (pour ses concepteurs) de "définir les extensions de HTTP nécessaires pour assurer la disponibilité d'outils WEB de création collective

Plus en détail

Hébergement de site web Damien Nouvel

Hébergement de site web Damien Nouvel Hébergement de site web Plan L'hébergeur Le serveur web Apache Sites dynamiques 2 / 27 Plan L'hébergeur Le serveur web Apache Sites dynamiques 3 / 27 L'hébergeur L'hébergeur sous-traite l'architecture

Plus en détail

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST Amosse EDOUARD, Doctorant Organisation Cours Magistral 24/11/2014 26/11/2014 01/12/2014 Travaux Dirigés 26/11/2014 28/11/2014 01/11/2014 08/11/2014 Evaluation

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

Serveur d Applications Web : WebObjects

Serveur d Applications Web : WebObjects Serveur d Applications Web : WebObjects Nicolas Roard 29 avril 2004 Table des matières 1 Introduction 1 2 Historique 1 2.1 Implémentation WebObjects....... 2 2.2 Différences et manques?......... 3 3 Principes

Plus en détail

Refonte front-office / back-office - Architecture & Conception -

Refonte front-office / back-office - Architecture & Conception - Refonte front-office / back-office - Architecture & Conception - GLG204 - Architectures Logicielles Java 2008/2009 Nom : Cédric Poisson Matricule : 06-49012 Version : 1.0 Jeudi 28 mai 2009 1 / 23 Table

Plus en détail

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement P. 2 1. Introduction 2.

Plus en détail

API SMS HTTP REST. Intégrer facilement le service Envoyer SMS Pro avec votre application métier. Version : 2.9.0 Révision : 03/09/2014 Page 1/31

API SMS HTTP REST. Intégrer facilement le service Envoyer SMS Pro avec votre application métier. Version : 2.9.0 Révision : 03/09/2014 Page 1/31 API SMS HTTP REST Intégrer facilement le service Envoyer SMS Pro avec votre application métier Révision : 03/09/2014 Page 1/31 REVISIONS Version Date Description Auteur 2.1.0 23/05/2011 Ajout de méthode

Plus en détail

Sécurité des Web Services (SOAP vs REST)

Sécurité des Web Services (SOAP vs REST) The OWASP Foundation http://www.owasp.org Sécurité des Web Services (SOAP vs REST) Sylvain Maret Principal Consultant / MARET Consulting / @smaret OpenID Switzerland OWASP Switzerland - Geneva Chapter

Plus en détail

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Sana Sellami sana.sellami@lsis.org 2014-2015 Plan Partie 1: Introduction aux Services Web (SW) Partie 2: Vers une

Plus en détail

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi Un exemple d'authentification sécurisée utilisant les outils du Web : CAS 111 L authentification CAS : «Central Authentication Service» CAS ou le service central d authentification Le système CAS, développé

Plus en détail

1 Introduction...3 1.1 Propos du document...3 1.2 Introduction...3 1.3 De HTTP 1.0 à HTTP 1.1...3

1 Introduction...3 1.1 Propos du document...3 1.2 Introduction...3 1.3 De HTTP 1.0 à HTTP 1.1...3 Tutorial HTTP 1 Introduction...3 1.1 Propos du document...3 1.2 Introduction...3 1.3 De HTTP 1.0 à HTTP 1.1...3 2 URL HTTP...4 2.1 Format d une URL HTTP...4 2.2 Champs de l URL HTTP...4 2.3 Encodage d

Plus en détail

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14 Document FAQ Supervision et infrastructure - Accès aux EXP Page: 1 / 9 Table des matières Introduction... 3 Démarrage de la console JMX...4 I.Généralités... 4 II.WebLogic... 5 III.WebSphere... 6 IV.JBoss...

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

Oauth : un protocole d'autorisation qui authentifie?

Oauth : un protocole d'autorisation qui authentifie? Oauth : un protocole d'autorisation qui authentifie? Maxime Féroul Directeur Technique / KYOS IT SECURITY Application Security Forum - 2012 Western Switzerland 7-8 novembre 2012 - Y-Parc / Yverdon-les-Bains

Plus en détail

Manuel d'installation

Manuel d'installation CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001

Plus en détail

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Titre: Version: Dernière modification: Auteur: Statut: Licence: Titre: Mise en œuvre de mod_webobjects Version: 2.0 Dernière modification: 2010/09/06 20:00 Auteur: Aurélien Minet Statut: version finale Licence: Creative Commons

Plus en détail

Attaques applicatives

Attaques applicatives Attaques applicatives Attaques applicatives Exploitation d une mauvaise programmation des applications Ne touche pas le serveur lui-même mais son utilisation/ configuration Surtout populaire pour les sites

Plus en détail

Architectures web/bases de données

Architectures web/bases de données Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est

Plus en détail

Réalisation d un portail captif d accès authentifié à Internet 10.10.10.1

Réalisation d un portail captif d accès authentifié à Internet 10.10.10.1 Master 1 ère année UE Réseaux avancés I Projet Réalisation d un portail captif d accès authentifié à Internet Présentation du projet Le but du projet est de mettre en place un portail captif permettant

Plus en détail

Petite définition : Présentation :

Petite définition : Présentation : Petite définition : Le Web 2.0 est une technologie qui permet la création de réseaux sociaux, de communautés, via divers produits (des sites communautaires, des blogs, des forums, des wiki ), qui vise

Plus en détail

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Rational ClearCase or ClearCase MultiSite Version 7.0.1 Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Product Overview IBM Rational

Plus en détail