Java pour les nuls, ou Tecka va tout planter |
Bienvenue invité ( Connexion | Inscription )
Java pour les nuls, ou Tecka va tout planter |
8 Mar 2008, 15:48
Message
#1
|
|
Boulet on Tour Groupe : Ancien de la Team Messages : 6085 Inscrit : 14-Dec-04 Lieu : Blainville sur l'eau Membre n° 191 |
C'est le grand jour je me lance, ras le bol de passer pour un gros noob
je me lance dans la programmation mais il faut que je reprenne tout depuis le début , ma dernière expérience en programmation remonte à la calculatrice Casio FX850-P. Il me faudrait en premier un environnement pour faire du Java, vous avez quelque chose de simple et gratos ? Et si en plus il y a un petit didacticiel c'est encore mieux Sinon des titres de livres genre "le Java pour les nuls". Merci Edit :Je viens de DL Eclipse 3.3 et NetBeans 6.0.1 Ce message a été modifié par Tecka - 8 Mar 2008, 16:20. -------------------- CoD4//Black Ops:iClanlTecka
MacPro Xéon Quad 2,66 ghz 6 go de ram ATI Radeon HD 5770 1Go+2 Raptor150Go+500Go MacBookPro Rétina 15' 2,8 Ghz i7 16Go ram NVIDIA GeForce 650M 1Go |
|
|
19 Oct 2008, 13:49
Message
#2
|
|
Marathon Man Groupe : Ancien de la Team Messages : 10953 Inscrit : 20-Nov-04 Lieu : Paris, XIe Membre n° 160 |
Sommaire évolutif et approximatif :
Une bonne part du travail dans une application est constituée par la mise en place de la gestion des droits. En effet en général c'est une partie de l'application extrêmement dépendante du type d'application et du contexte d'utilisation de celle-ci. La gestion des droits peut se traduire suivant les cas par (du plus basique au plus élaboré) : - la gestion de l'accès à l'application - la gestion de l'accès à certaines fonctionnalités de l'application - la gestion de l'accès à certaines fonctionnalités de l'application en fonction des propriétés des objets sur lesquels s'appliquent celles-ci Pour notre application, notre besoin est basique : on veut seulement une gestion de l'accès aux pages d'administration de notre application. On va donc pouvoir utiliser l'authentification intégrée dans tomcat. Ce que sait faire tomcat : restreindre l'accès à certaines URLs (ou à une masque, un pattern d'URLs). Pour cela, on va regrouper nos pages d'administration dans un même répertoire admin. 1 - Création du répertoire des pages d'administration Dans Eclipse, dans notre répertoire WebContent, on crée un répertoire "admin". Dans ce répertoire, on crée une page liste.jsp (qui contiendra plus tard notre liste d'actualités). Pour l'instant son contenu se limitera à cela : CODE <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Liste des actualités</title> </head> <body> Liste des actualités </body> </html> Si on va à l'adresse http://localhost:8080/vg_actus/admin/liste.jsp on vérifie bien que notre page existe désormais sur notre serveur et est accessible sans restriction. 2 - Création du droit applicatif Vous vous souvenez du fichier tomcat-users.xml (situé dans le répertoire conf de tomcat)? C'est dans ce fichier qu'on va ajouter notre droit applicatif propre et configurer notre utilisateur pour y avoir accès. On modifie donc notre fichier pour qu'il ressemble à ça : CODE <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="vgactusadmin"/> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager"/> <user username="joan" password="XXXXXXXX" roles="tomcat,manager,vgactusadmin"/> </tomcat-users> (vous pouvez bien sûr mettre votre propre utilisateur et mot de passe ). On a donc ajouté un droit "vgactusadmin" et on a donné ce droit à un de nos utilisateurs. 3 - Restriction des pages applicatives On va maintenant dire à tomcat de vérifier quand un utilisateur essaie d'accéder à nos pages d'administration qu'il a le droit "vgactusadmin". On ouvre le fichier web.xml dans Eclipse et on rajoute les lignes : CODE <!-- Sécurité --> <security-constraint> <display-name>Test d'authentification tomcat</display-name> <!-- Liste des pages protégées --> <web-resource-collection> <web-resource-name>Page sécurisée</web-resource-name> <url-pattern>/admin/*</url-pattern> </web-resource-collection> <!-- Rôles des utilisateurs ayant le droit d'y accéder --> <auth-constraint> <role-name>vgactusadmin</role-name> </auth-constraint> </security-constraint> <login-config> <!-- Type d'authentification --> <auth-method>BASIC</auth-method> <realm-name>Espace Membres</realm-name> </login-config> <!-- Rôles utilisés dans l'application --> <security-role> <description>Administrateur</description> <role-name>vgactusadmin</role-name> </security-role> Explications : - on ajoute une contrainte de sécurité sur toute URL de la forme "/admin/..." dans notre application - seuls les utilisateurs ayant le droit "vgactusadmin" pourront y accéder - la méthode de login sera basique (pas de page de formulaire dédiée, mot de passe qui transite en clair) - notre application utilisera seulement le rôle "vgactusadmin" parmi les rôles définis dans tomcat-users.xml Notre web.xml ressemble donc désormais à : CODE <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>vg_actus</display-name> <!-- Configuration du log --> <context-param> <param-name>log4jProp</param-name> <param-value>/WEB-INF/config/log4j.properties</param-value> </context-param> <!-- Les servlets --> <servlet> <description>Servlet de l'initialisation de lgo4j</description> <servlet-name>initServlet</servlet-name> <servlet-class>fr.iclan.util.servlet.InitServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- Sécurité --> <security-constraint> <display-name>Test d'authentification tomcat</display-name> <!-- Liste des pages protégées --> <web-resource-collection> <web-resource-name>Page sécurisée</web-resource-name> <url-pattern>/admin/*</url-pattern> </web-resource-collection> <!-- Rôles des utilisateurs ayant le droit d'y accéder --> <auth-constraint> <role-name>vgactusadmin</role-name> </auth-constraint> </security-constraint> <login-config> <!-- Type d'authentification --> <auth-method>BASIC</auth-method> <realm-name>Espace Membres</realm-name> </login-config> <!-- Rôles utilisés dans l'application --> <security-role> <description>Administrateur</description> <role-name>vgactusadmin</role-name> </security-role> <!-- Page d'accueil --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> Vu que par défaut tomcat utilise le fichier tomcat-users.xml comme source de données des droits et utilisateurs, aucune autre manipulation n'est nécessaire (on aurait pu par exemple utiliser une base de données ou un autre fichier pour fournir les utilisateurs et les droits...). On redémarre notre serveur pour prendre en compte les modifications du fichier tomcat-users.xml. Si on revient sur notre page http://localhost:8080/vg_actus/admin/liste.jsp, on voit apparaître : On vérifie bien qu'il n'y a qu'en tapant le nom et le mot de passe de notre utilisateur qu'on arrive bien à se connecter à notre page. La session d'authentification dure tant que notre navigateur est lancé, il faut le quitter pour qu'au prochain lancement il redemande le mot de passe pour accéder à la page. Projet en fin de leçon : vg_actus-auth.zip Prochaine leçon : mise en place de la connexion Java-MySQL -------------------- Ordis: iPad 2 16Go 3G ; MacbookAir 11" Core i7 2GHz 8 Go RAM SSD128Go + Dell 2405FPW; Mini C2D2.0GHz media center / Accessoires: Wii , XBox360, PS3, 3DS, iPhone 4 / Télé: Numericable HD Box -> Samsung LE32R51B + Denon AVR-3808 + 5.0 Triangle
• About.me "Je n'ai jamais aimé que moi / Et je reste sans lendemain", H.F. Thiéfaine "Reality is that which, when you stop believing in it, doesn’t go away", Philip K. Dick |
|
|
29 Apr 2009, 15:36
Message
#3
|
|
Grosses sacoches Groupe : Membre Messages : 4291 Inscrit : 10-May-06 Lieu : Allemagne, Baden-Württemberg Membre n° 565 |
Prochaine leçon : mise en place de la connexion Java-MySQL Oh grand gourou du SQL Nous attendons avec impatience tes sages enseignements -------------------- MacBook 13" 2,26 GHz Intel Core 2 Duo, NVidia GeForce 9400M 256 MB, OSX Yosemite
|
|
|
Version bas débit | Nous sommes le : 2 Oct 2024 - 15:43 |