Master 1 d'Informatique - Option MAD (Middleware et Applications aDaptables) - Université Grenoble I - UFR IMA
Enseignant : Sara Bouchenak, Sara.Bouchenak@imag.fr
Page de l'option MAD : http://sardes.inrialpes.fr/~bouchena/teaching/MAD/
Ajout de l'aspect d'authentification de l'utilisateur dans une application en utilisant l'AOP/AspectJ.
Les logiciels suivants sont nécessaires au TP ; les installer s'ils ne sont pas disponibles dans votre environnement.
En plus des logiciels utilisés dans les TP précédents :
Les logiciels nécessaires au TP sont également disponibles dans ~sbouchen/ENS/MAD/AOP/Soft/
Définir la variable d'environnement suivante :
En plus des variables utilisées dans les TP précédents :
Exemple de fichier de commandes pour Unix/tcsh env-tcsh (soit ajouter ces commandes à votre fichier
~/.cshrc, soit exécuter la commande source env-tcsh).
Exemple de fichier de commandes pour Windows env-win.bat (exécuter la commande env-win.bat).
Ces fichiers sont disponibles dans ~sbouchen/ENS/MAD/AOP/Soft/
Récupérer le TP4 qui se trouve dans ~sbouchen/ENS/MAD/AOP/Project/TP4.tgz
Une application bancaire persistante est donnée dans Project/TP4/Basic :
Configurer la base de données McKoi :
Choisir un numéro de port sur lequel votre serveur de BD McKoi sera lancé.
Si lors du lancement de votre serveur McKoi (avec la commande ant create_db),
vous avez une exception avec le message "Address already in use" ou "Journal
file already exists", c'est que le numéro de port que vous avez choisi est
déjà utilisé par quelqu'un d'autre.
Choisir alors un autre numéro.
Dans le fichier db.conf, mettre mettre à jour la valeur de jdbc_server_port ave le numéro de port choisi.
Dans le fichier build.xml, mettre à jour la valeur de la propriété mckoi.port avec le même numéro de port.
Compiler et exécuter l'application puis naviguer dans son API et son code pour comprendre son fonctionnement :
Commande de compilation : ant compile
Lancement du serveur de base de données : ant create_db
Sur une autre console, initialisation de la base de données : ant
pop_db
Ceci créera une base de données avec une table accounts qui contient
trois colonnes : id (le numéro de compte), customer (le nom du
propriétaire du compte) et balance (la balance du compte).
La commande d'initialisation crée sept entrées dans cette table.
Lancement d'un client graphique de la base de données : ant client_db
Ce client graphique permet d'exécuter des requêtes SQL sur la base de données.
Tester par exemple la requête SHOW TABLES qui affiche les tables de la
base de données et la requête SELECT * FROM accounts qui affiche toutes
les informations concernant toutes entrées de la table accounts.
N.B. Vérifier que vous avez un serveur X lancé, tel que X-Win32 pour Windows.
Sur une autre console, lancer le programme de test : ant run
Ce programme ajoute deux nouvelles entrées à la table accounts et
effectue des transferts entres ces comptes.
Utiliser le client graphique précédemment lancé pour faire afficher le nouveau contenu de la table accounts (requête SQL SELECT * FROM accounts )
La sécurité est un aspect important des systèmes logiciels actuels. Elle inclut plusieurs composantes, telles que l'authentification, l'autorisation, le chiffrage (cryptographie) et la protection contre les attaques des sites web.
Dans ce TP, nous nous intéressons plus particulièrement à l'aspect d'authentification. L'authentification permet de vérifier qu'un utilisateur est bien "celui qu'il dit être".
L'application bancaire manipule des comptes bancaires. Les opérations d'accès à ces comptes et de modification de ces comptes sont effectuées par certains utilisateurs qui doivent s'authentifier avant tout accès au système bancaire. Seuls les utilisateurs connus (dont l'authentification réussit) doivent pouvoir accéder au système bancaire.
JAAS est une librairie Java (incluse dans le J2SDK 1.4) qui fournit les
abstractions et mécanismes nécessaires à la mise en oeuvre de l'authentification
des utilisateurs. Les programmes voulant bénéficier de l'authentification
doivent faire appel à ces mécanismes.
Voir
http://java.sun.com/products/jaas/ ou
http://java.sun.com/security/jaas/doc/api.html pour plus d'informations sur
JAAS.
Le répertoire Project/TP4/Authentication_HandCoded/ contient une extension "programmée à la main" de l'application bancaire pour la prise en compte de l'authentification.
La fonction d'authentification dans JAAS se base sur les éléments suivants :
Les principales modifications apportées à l'application bancaire pour la prise en compte de l'authentification sont les suivantes :
Compiler, configurer et exécuter l'application comme suit :
En vous inspirant de la solution précédente, proposer une prise en compte de l'aspect d'authentification en utilisant AspectJ.
Pour ce faire, copier le répertoire Project/TP4/Authentication_Aspects et écrire l'aspect demandé dans Project/TP4/Authentication_Aspects/aspects/authentication/AuthAspect.java :
Combiner l'utilisation des aspects de traçage/transactions proposés dans les TP2 et TP3 avec l'aspect d'authentification proposé dans ce TP pour qu'ils soient tous appliqués à votre application bancaire.
Pour cela, vous ne devez pas modifier le code de vos aspects ni le code de l'application mais utiliser le compilateur AspectJ avec ces différents aspects et l'application bancaire.
Un compte-rendu global sur les TP 2, 3 et 4 est à rendre lors de la séance de
démonstration.
Voir ici pour plus d'informations.