Bienvenue invité ( Connexion | Inscription )

> Java pour les nuls, ou Tecka va tout planter
Tecka
posté 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 happy.gif
Sinon des titres de livres genre "le Java pour les nuls".
Merci smile.gif

Edit :Je viens de DL Eclipse 3.3 et NetBeans 6.0.1 wink.gif

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
IN VINO VERITAS IN VINAS VERY TÔT
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
atarxerxes
posté 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 :
  1. les installations
  2. spécifications de l'application
  3. création de la base et des tables
  4. création du projet Eclipse
  5. mise en place du log
  6. mise en place de l'authentification Tomcat
  7. connexion Java-MySQL
  8. récupérations d'informations dans la base
  9. génération du flux XML des actualités
  10. transformation et affichage du flux XML
  11. construction du modèle des pages HTML
  12. écriture des requêtes de modification/ajout/suppression
  13. écriture des pages de modification/ajout/suppression
  14. prototype + scriptaculous : le javascript fiable, facile et spectaculaire
  15. saisie facile des dates
  16. validation des données saisies
  17. écriture de la servlet publique
  18. génération du flux Atom
Mise en place de l'authentificaiton Tomcat

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 wink.gif).
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
Go to the top of the page
 
+Quote Post
Heimdal50
posté 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



remontetopic.gif
CITATION(atarxerxes @ 19 Oct 2008, 14:49) *
Prochaine leçon : mise en place de la connexion Java-MySQL

Oh grand gourou du SQL zen.gif Nous attendons avec impatience tes sages enseignements


--------------------
MacBook 13" 2,26 GHz Intel Core 2 Duo, NVidia GeForce 9400M 256 MB, OSX Yosemite
Go to the top of the page
 
+Quote Post

Les messages de ce sujet
- Tecka   Java pour les nuls   8 Mar 2008, 15:48
- - atarxerxes   Sommaire évolutif et approximatif :les installatio...   6 Oct 2008, 22:35
- - atarxerxes   Sommaire évolutif et approximatif :les installatio...   12 Oct 2008, 13:25
- - atarxerxes   Bon, à partir de la prochaine séance on attaque le...   14 Oct 2008, 11:49
- - Heimdal50   Je n´ai pas réussi la création de la base et des t...   14 Oct 2008, 11:54
- - atarxerxes   Alors?   15 Oct 2008, 09:15
- - Heimdal50   My SQL Query Browser a des problèmes avec la comma...   15 Oct 2008, 10:08
- - atarxerxes   Bizarre, peut-être qu'il est en auto-commit et...   15 Oct 2008, 10:34
- - CantKillemAll   Pas le temps en ce moment, mais toujours intéressé...   15 Oct 2008, 12:31
- - Gamoul   pareil pour moi   15 Oct 2008, 14:46
- - Tecka   Merde j'ai loupé un cours je fais ça ce week-e...   16 Oct 2008, 09:20
- - atarxerxes   Sommaire évolutif et approximatif :les installatio...   19 Oct 2008, 11:28
- - DBSor   Powaa, ça se complique et j'ai pas trop le tem...   19 Oct 2008, 12:09
- - atarxerxes   Sommaire évolutif et approximatif :les installatio...   19 Oct 2008, 13:49
|- - Heimdal50   CITATION(atarxerxes @ 19 Oct 2008, 14:49)...   29 Apr 2009, 15:36
- - atarxerxes   Je suis en vacances   29 Apr 2009, 16:14
- - Gamoul   Cool, ça veut dire que tu auras tout ton temps pou...   29 Apr 2009, 16:42
- - DBSor   et maintenant, on fait quoi ?   16 Apr 2012, 14:06
|- - Louis92   CITATION(DBSor @ 16 Apr 2012, 15:06) On ...   16 Apr 2012, 15:39
- - titimoby   ça intéresse toujours du monde ? si atarxerxes n...   17 Apr 2012, 08:37
- - atarxerxes   Pas de problème pour que tu prennes la suite   27 Apr 2012, 07:29
- - titimoby   J'espère avoir à la fois le temps nécessaire e...   28 Apr 2012, 22:14
- - titimoby   Anecdote qui m'enquiquine : jusqu'à mon c...   1 May 2012, 21:56
- - Louis92   Tu dois appuyer en bas à gauche sur la touche ...   2 May 2012, 08:11
- - titimoby   J'ai renoncé, j'ai enlevé mes réglages de ...   2 May 2012, 10:10
- - titimoby   Accessoirement, je n'avais pas mis en place de...   2 May 2012, 10:35
- - Tsukama   Si tout se passe bien pour mes concours, l'ann...   5 May 2012, 09:58
- - RooKMooT Junior   J'ai commencé le java depuis peu et en essayan...   6 May 2012, 14:09
- - Leoric   Il faut mettre "==" pour référer à une c...   6 May 2012, 14:15
- - RooKMooT Junior   Merci, et en plus je viens de regarder et ça par c...   6 May 2012, 19:58
- - DBSor   Comme ça tu ne l'oublieras pas et c'est ta...   6 May 2012, 22:13
2 Pages V  < 1 2


Reply to this topicStart new topic
5 utilisateur(s) sur ce sujet (5 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 2 Oct 2024 - 15:43