Dialogues de sécurité Java Web Start avec Java 7 update 51


Je construis une application Java Web Start signée avec un certificat valide.

Lorsque je lance l'application, la boîte de dialogue de sécurité apparaît correctement comme le montre cette figure

Http://www.java.com/en/img/download/trusted_signed.jpg

Mon problème concerne la case à cocher "ne plus afficher".

Si les attributs href sont présents dans la balise jnlp du fichier jnlp, la case à cocher apparaît.

Si l'attribut n'est pas présent, la case à cocher n'apparaît pas et le l'exécution doit être confirmée à chaque fois.

(Exemple:

)

C'est un problème car mon fichier jnlp se trouve dans un répertoire protégé par mot de passe et si href est spécifié, l'application Java Web Start essaie de le récupérer en tant qu'autres ressources. (résultat: l'accès est refusé car seule la session du navigateur est authentifié et l'exécution échoue)

La documentation lors du déploiement d'une application Java Web Start disait:

Les attributs codebase et href sont facultatifs lors du déploiement d'applications Java Web Start qui s'exécuteront sur au moins la version Java SE 6 update 18 ou ultérieure. Vous devez spécifier les attributs codebase et href lors du déploiement d'applications Java Web Start qui s'exécuteront avec les versions précédentes du logiciel Java Runtime Environment.

Quel est le bon code? Href ou sans?

Est-ce un BUG ou une fonctionnalité?

Comment puis-je afficher la case à cocher "ne plus afficher" sans avoir à spécifier l'attribut href?

Author: Simone, 2014-01-18

1 answers

Après de nombreuses recherches et tests, nous n'avons trouvé que ces deux façons pour une application Java Web Start, correctement signée avec un certificat tiers de confiance, d'être déployée sous JRE 1.7.0_51 et d'afficher la boîte de dialogue de sécurité attendue (avec "Ne plus afficher cela..."case à cocher):

1) Ajoutez href= avec l'auto-référence du fichier de lancement comme vous le décrivez ci-dessus, par exemple:

jnlp spec="1.0+" codebase="http://some.dn.com/OurAppHome/"  href="launch.jnlp"

Ce qui n'est pas simple pour les sites qui génèrent le JNLP via, disons ASP, ou sous d'autres conditions comme vous la remarque ci-dessus.

2) La bonne chose: JAR manifeste tel qu'il ne montre pas Attribut manifeste Bla-Bla-Bla manquant dans le journal de la console. Les attributs de manifeste supplémentaires minimaux pour 7u51 que nous avons trouvés doivent être présents (*s en tant que valeurs de test):

Permissions: all-permissions
Codebase: *
Application-Library-Allowable-Codebase: *

Donc, notre manifeste de test de script de construction complet de travail ressemble à ceci (la version est générée):

         <manifest>
             <attribute name="Application-Name" value="Our App Name"/>
             <attribute name="Main-Class" value="com.whatever.main.AppLoader"/>
             <attribute name="Class-Path" value="./Corejar.jar ./Support.jar"/>
             <attribute name="Built-By" value="${user.name}"/>
             <attribute name="Permissions" value="all-permissions"/>
             <attribute name="Codebase" value="*"/>
             <attribute name="Application-Library-Allowable-Codebase" value="*"/>
             <attribute name="Trusted-Only" value="true"/>
             <attribute name="Specification-Title" value="Our App Name"/>
             <attribute name="Specification-Version" value="${version}"/>
             <attribute name="Specification-Vendor" value="Our Company Name"/>
         </manifest>
 2
Author: user3231748, 2014-01-24 14:59:39