Si je souhaite déployer des applets à privilèges élevés, ils doivent être signés. Pour cela, un certificat est créé, puis un fichier jar est signé avec un jarsigner. Après cela, dans le code HTML, il faut spécifier le code, la base de code ET l'archive (jar) que nous avons signé auparavant.Existe-t-il un autre moyen d'utiliser des applets signés?
Cependant, j'ai écrit une servlet qui agit comme deux choses:
- il se trouve à l'URL pointé par la base de code et sert class bytecode à l'applet.
- La même servlet utilise également la sérialisation pour communiquer avec l'applet. Ainsi, chaque fois que l'applet reçoit une classe, elle ne sait pas qu'elle va à la base de code qui revient à la servlet.
Malheureusement pour les applets signés, il faut l'archive. Maintenant, le servlet est également capable de charger un objet Certificate et de l'envoyer à l'applet. Voici donc la configuration: À un moment l'applet reçoit le bytecode de classe et il a aussi le certificat. Ce serait bien si l'applet pouvait instancier toutes les classes reçues en utilisant ce certificat (sinon, le code de jar est signé et l'extérieur n'est pas ce qui provoque des messages désagréables à l'utilisateur).
Alors ma question pour vous des beaux aficionados de Java: Y aurait-il par un moyen pour moi d'utiliser les données de bytecode et le certificat d'instancier la classe comme un objet signé afin que le plugin affiche la boîte de dialogue de sécurité, accepte Teh certificat et élève les privilèges de l'objet. Ce que j'ai pu trouver est qu'il existe une classe CodeSource qui accepte l'URL et le certificat de la base de code et qui est essentielle au processus de signature. Ce dont je ne suis pas sûr, c'est comment on pourrait intercepter le chargement des classes à l'intérieur des applets pour installer des certificats supplémentaires non obtenus via un fichier JAR via archive.
Que dites-vous? Merci beaucoup.