Comment utiliser un fichier dans un fichier javax.net.ssl.keystore?
Je suis en train de faire quelque chose comme
URL clientks = com.messaging.SubscriptionManager.class.getResource( "client.ks" );
String path = clientks.toURI().getPath();
System.setProperty( "javax.net.ssl.keyStore", path);
Où le client.ks est un fichier stocké dans la com/messagerie dans le fichier jar que je suis en cours d'exécution.
La chose qui lit le javax.net.le protocole ssl.fichier de stockage des clés s'attend à un chemin d'accès pour le client.ks fichier qui est dans le pot. Je préfère ne pas extraire le fichier et le mettre sur la machine du client, si possible. Ainsi est-il possible de faire référence à un fichier dans un bocal?
Cela ne fonctionne pas comme getPath() renvoie la valeur null. Est-il une autre façon de le faire?
source d'informationauteur darrickc | 2008-12-05
Vous devez vous connecter pour publier un commentaire.
Encore à travailler sur la mise en œuvre, mais je crois qu'il est possible de charger le fichier de clés à partir du pot via InputStream et de définir explicitement le TrustStore par programmation (vs définissant les propriétés du Système). Voir l'article: La définition de plusieurs truststore sur la même JVM
Ai eu de travail!
Vous pouvez obtenir un
InputStream
à une ressource dans un fichier jar, mais pas unFile
. Si la "chose" qui, finalement, se lit le fichier de clés s'attend à unFile
ou un chemin d'accès à un fichier, votre seule option est de les extraire pour le système de fichiers.Ici sa propre version de user2529737 réponseau cas où il permet. Il a retiré inutiles confiance installation de magasin et a ajouté requis importations, les paramètres de type de magasin de clés et la clé de mot de passe.