5. Authorisation Java
Dans le modèle de sécurité de Java, des opérations peuvent être exécutées soit parce qu'elle
proviennent d'une source sûre (droits basés sur la provenance du code, code-based), soit
parce qu'elle sont demandées par des entités authentifiées (droits basés sur l'identité).
Pour utiliser l'autorisation Java, il faut fournir un fichier de configuration qui décrit les droits
qui sont donnés aux codes source ou aux entités identifiés.
Le format de ce fichier de configuration est le suivant :
grant signedBy "identité de source", codebase "provenance du code"
principal "principal_class_name", "principal_name"
principal "principal_class_name", "principal_name"
… {
permission permission_class_name "target_name",
"action", signedBy "noms";
permission permission_class_name "target_name",
"action", signedBy "noms";
…
}
6. Rajout de l'autorisation à l'application
Nous voulons différencier les utilisateurs authentifiés selon le critère NORMAL ou ROOT.
Pour les utilisateurs connectés en mode NORMAL, ceratines actions ne seront pas autorisées.
Pour les utilisateurs en mode ROOT, toutes les actions seront autorisées.
6.1 Modification des sources
1) Rajouter le fichier miage3_auth.policy. Regarder son contenu et expliquer
quels sont les droits spécifiéss.
2) Les autorisations concernent des actions, appelées des actions privéligiées. Rajouter la
classe Miage3Action (fichier Miage3Action.java) dans les sources. Cette classe
étendra la classe prédéfinie PrivilegedAction et implémentera la méthode
run(). Dans la méthode run, il faudra mettre les traitements "privilégiés" qui vont
être appelés par les utilisateurs authentifiés. D'après le fichier de configuration
miage3_auth.policy, ces traitements sont la lecture de deux proprités système et
la vérification de l'existence d'un fichier foo.txt. Pour la lecture des propriétés
système, regarder la classe System. Pour la manipulation des fichiers, regarder la
classe File.
3) Compiler : création des jars
Compilation des fichiers Java à la main
javac miage3/*.java miage3/loginpackage/*.java
miage3/identites/*.java
ou avec votre environnement
Si vous utilisez la deuxième manière, repérer bien où sont vos classes.
− Création de Miage3Test.jar contenant
miage3.Miage3Action.class
miage3.SimpleTest.class
miage3.Miage3CallbackHandler.class