2009-11-25 9 views
4

Existe-t-il un moyen de supprimer l'invite de mot de passe lors de l'utilisation de Java Webstart avec un serveur https qui utilise l'authentification du client? Je voudrais faire cela, parce que l'application webstarted fonctionne sur un appareil à écran tactile qui n'a pas de clavier et fonctionne en mode kiosque. Par conséquent, il serait suffisant de supprimer le mot de passe du fichier de clés ou de le stocker quelque part, peut-être dans le raccourci sur le bureau qui démarre l'application.Comment supprimer l'invite de mot de passe keystore lors de l'utilisation de Java Webstart avec l'authentification client?

Je l'ai déjà essayé de joindre un paramètre JVM au raccourci comme celui-ci, mais il ne fonctionne pas:

javaws -J-Djavax.net.ssl.keyStorePassword=mypass https://... 

J'ai aussi découvert, lors de l'activation du -option « utilisation keystore du navigateur » dans le Panneau de configuration Java et ajouter le certificat, je peux annuler l'invite de mot de passe et toujours se connecter avec succès. Il semble que seul le Java-Keystore demande un mot de passe et Internet Explorer ne le demande pas.

Répondre

1

Vous essayez d'utiliser une implémentation KeystoreProvider personnalisée. Ce n'est pas si difficile à créer et je suppose que vous pouvez outrepasser le besoin du mot de passe. Vous devrez personnaliser les security.properties du JRE utilisé pour lancer l'application webstart.

Bien que dans votre cas ... existe-t-il une raison pour laquelle vous ne souhaitez pas utiliser le fichier de clés du navigateur? Dans ce cas, vous n'avez pas de problème.

David

+0

Je vais certainement jeter un coup d'œil au KeystoreProvide personnalisé, merci. La raison pour laquelle le keystore du navigateur ne résout pas mon problème est la suivante: Lorsque j'utilise le keystore du navigateur, je dois encore annuler la boîte de dialogue de mot de passe pour le keystore JVM. À côté de cela, les clients peuvent être des installations Linux et je n'ai pas compris comment fonctionne le keystore du navigateur. –

+0

Nous utilisions l'authentification client dans notre communication HTTPS mais il semble que SUN introduit de nouveaux bogues avec chaque version que nous décidons d'arrêter de l'utiliser. Les dernières versions 1.6 ont un nouveau plugin Java complet (enfin vous pouvez même choisir la version) avec de nouveaux bugs de régression. Il semble que l'authentification du client ne soit pas très élevée sur la liste à SUN. –

0

Je pense que le problème est dû à l'autorité de certification (CA)! Si votre application Webstart est signée avec un certificat approuvé par une autorité de certification qui fait déjà partie de la liste JVM de CA (Verisign, Thawte, ...), aucun mot de passe n'est nécessaire pour ajouter la clé d'application au magasin de clés local. Donc, si vous voulez, vous pouvez stocker manuellement dans le keystore par défaut de Java votre propre autorité de certification (vous aurez besoin d'un mot de passe une fois), puis vous signer avec un certificat émis par cette autorité de certification privée.
Je ne sais pas quelle machine virtuelle Java vous utilisez sur votre appareil (j'ai eu quelques problèmes avec IBM JDK faisant l'astuce ci-dessus), mais cela devrait fonctionner!

+0

Je pense que vous vous êtes trompé. Nous parlons d'authentification du client ici. Le serveur indique au client javaws qu'un certificat est nécessaire pour l'authentification. Ensuite, le client veut accéder au keystore, pour rechercher un cert, qui peut être utilisé pour le serveur. –

+0

Ha OK! C'est un certificat à deux voies nécessaire, désolé. –