ShowDynPermissions.java

package fr.umlv.ji.security;
import java.security.*;
public class ShowDynPermissions {
  public static void main(String[] args) {
    if (args.length == 0) {
      System.err.println("Usage: java "+
     ShowDynPermissions.class.getName()+" <class>");
      System.exit(1);
    }
    try {
      // Récupére l'objet classe
      Class c = Class.forName(args[0]);
      // Récupère le domaine de sécurité statique de la classe
      ProtectionDomain domain = c.getProtectionDomain();
      // Récupère l'objet CodeSource dans le domaine
      System.out.println("Source:" + domain.getCodeSource());
      // Récupère le chargeur de classes
      System.out.println("ClassLoader: " + c.getClassLoader());
      // Récupère l'ensemble des droits (dynamiques) de la classe
      Policy policy = Policy.getPolicy();
      System.out.println("Droits: " + policy.getPermissions(domain));
    } catch(ClassNotFoundException ex) {
      System.out.println("Classe " + args[0] + " inconnue !");
    }
  }
}