Java Security Manager
Sans le Security Manager le code suivant est exécuté sans exception.
/* Aucune erreur le fichier est créé */
try {
new File(PATH + "file.txt").createNewFile();
} catch (Exception ex) {
ex.printStackTrace();
}
Le fichier est bien créé.
Si on créé le Security Manager et que l'on tente de créer un fichier, le programme lèvera une exception de type Access denied
/* création d'un nouveau SecurityManager */
System.setSecurityManager(new SecurityManager());
/* Exception de type access denied */
try {
new File(PATH + "file.txt").createNewFile();
} catch (Exception ex) {
ex.printStackTrace();
}
Pour autoriser le programme à créer des fichiers, il faut créer le fichier .java.policy dans le dossier user.home (dossier utilisateur).
grant codeBase "<CHEMIN_DU_JAR ou DOSSIER_BIN_ECLIPSE>" {
permission java.io.FilePermission "<CHEMIN>", "write, read, delete, execute, readlink";
};
Par exemple :
grant codeBase "file:C:/Users/Ronan/workspace/securitymanager/bin/*" {
permission java.io.FilePermission "C:/Users/Ronan/Desktop/*", "write";
};
Dans cet exemple, le programme ne pourra qu'enregistrer des fichiers sur le bureau et il ne pourra ni lire, ni exécuter, ni supprimer des fichiers.
Commentaires
Enregistrer un commentaire