2009-03-09 5 views
0

Je veux écrire mon propre ClassLoader. Il devrait être plus rapide et plus dynamique que le ClassLoader for Applets par défaut.Comment étendre la classe java.security.SecureClassLoader?

Mais je ne sais pas comment je met en œuvre la méthode:

PermissionCollection getPermissions(CodeSource codesource) 

La mise en œuvre de super accorder aucun droit même si un certificat est valide dans le CodeSource. Dois-je vérifier le certificat soi-même ou est-ce qu'il vérifie déjà à partir de la machine virtuelle Java et accepté de l'utilisateur?

Répondre

1

Sun PlugIn et WebStart remplacent getPermissions pour vérifier la signature et vérifier auprès de l'utilisateur s'ils souhaitent accepter le certificat. Ceci est un détail d'implémentation et peut changer dans le futur.

+0

Quand vous dites ceci est un détail de mise en œuvre, vous parlez de plug-in Sun et le comportement Webstart autour d'un 'exemple SecureClassLoader' et non la méthode' getPermissions' lui-même, ne vous ? –

1

Corrigez-moi si je me trompe - Je pense que ce que vous voulez, c'est créer un classloader quelque part dans l'initialisation de votre applet, puis charger vos classes suivantes en utilisant ce chargeur. Si oui, l'applet aura déjà reçu toutes les autorisations en vertu de sa signature (et à condition que l'utilisateur ait cliqué sur l'avertissement du navigateur). Votre méthode GetPermissions peut ressembler à ceci

PermissionCollection p = new Permissions(); 
    p.add(new AllPermission()); 
    return p; 
+0

Oui et Non. Le fichier jar avec classLoader a été accepté et possède tous les droits. Ceci n'est pas valide pour les autres fichiers jar. Ces fichiers peuvent être manipulés. Que ce sera un trou de sécurité pour tout accepter sans le vérifier. – Horcrux7

+0

C'est vrai - mais le classloader Custom est lui-même dans le jar de confiance - donc si toutes les permissions lui ont été accordées, logiquement ces permissions devraient 'couler' vers les classes qu'il charge. Mais je comprends votre point - les fichiers peuvent être manipulés seulement en piratant le plugin JRE lui-même. – talonx

+0

Comme dans, en mettant des versions malveillantes de ces classes dans le chargeur parent (qui est le chargeur de plugin). Mais cela signifie également que la machine cliente est compromise. – talonx

Questions connexes