J'essaie d'utiliser com.sun.grizzly.SSLConfig.setKeyStoreFile() pour définir le protocole SSL pour Grizzly. Il ne prend qu'une chaîne comme entrée (pas InputStream ou File). Je veux utiliser un fichier jks qui se trouve dans un fichier JAR. Si je passe une chaîne pour un chemin jar (par exemple C: \ dir \ my.jar! \ Resources \ my.jks), elle échoue. Autre que de décompresser le fichier du JAR, comment puis-je utiliser ce JKS pour grizzly.Définition du fichier de clés de Grizzly pour utiliser un fichier jks dans un bocal
Répondre
Il ne semble pas que vous puissiez transmettre autre chose qu'un nom de fichier. Si vous affichez le source et examinez les méthodes validateConfiguration()
et createSSLContext()
, vous verrez qu'il transmet la variable keyStoreFile
directement au constructeur FileInputStream
.
À court terme, vous êtes probablement bloqué avec décompression et utilisation du nom de fichier direct. Ou vous pouvez substituer les deux méthodes listées ci-dessus pour valider et initialiser correctement le SSLContext. À long terme, je soumettrais un patch.
@ L'idée de Kevin a fonctionné! L'utilisation grizzly-servlet-webserver 1.9.8, voici mon code:
SSLConfig ssl = new SSLConfig(){
@Override
public SSLContext createSSLContext() {
try{
//Load the keystore.
KeyStore keyStore=KeyStore.getInstance(KeyStore.getDefaultType());
InputStream keyStream=ClassLoader.getSystemResourceAsStream("my.jks");
//InputStream keyStream=new java.net.URL("jar:file:/C:/dir/my.jar!/my.jks").openStream();
keyStore.load(keyStream,"mypassword");
keyStream.close();
//Create the factory from the keystore.
String kmfAlgorithm=System.getProperty("ssl.KeyManagerFactory.algorithm",KeyManagerFactory.getDefaultAlgorithm());
KeyManagerFactory keyManagerFactory=KeyManagerFactory.getInstance(kmfAlgorithm);
keyManagerFactory.init(keyStore,"mypassword");
//Create the SSLContext
SSLContext sslContext=SSLContext.getInstance("TLS");
sslContext.init(keyManagerFactory.getKeyManagers(), null, null);
return sslContext;
}
//Wrap all Exceptions in a RuntimeException.
catch(Exception e){
throw new RuntimeException(e);
}
}
};
Je pris quelques raccourcis (ne pas vous déconnecter des exceptions, en utilisant plusieurs constantes de chaîne, etc.), mais vous pouvez obtenir l'idée.
- 1. Définition de la version de fichier pour un fichier codeDOM
- 2. Définition du nom de fichier pour un fichier téléchargé dans une application rails
- 3. définition du nom de fichier?
- 4. Importer les clés publique et privée .pem du keystore JKS
- 5. Appel d'un fichier HTML à partir du bocal
- 6. Charger une ressource contenue dans un bocal
- 7. Conséquences pour la sécurité du stockage du fichier de clés dans un dépôt public
- 8. Comment utiliser un fichier dans un fichier javax.net.ssl.keystore?
- 9. Définition d'une propriété du fichier de Pylônes
- 10. Protection JKS
- 11. Définition dynamique du nom de fichier PDF
- 12. Conversion de fichiers .jks en p12
- 13. Comment utiliser la fonction splice() de Linux pour copier un fichier dans un autre fichier?
- 14. est-il un outil pour convertir un fichier de définition de couleur .vim à utiliser dans VS.NET 2008
- 15. Utiliser Celerity pour télécharger un fichier
- 16. Définition du curseur personnalisé à partir du fichier de ressources
- 17. Pouvons-nous utiliser une classe créée dans un fichier .asp dans un fichier C#
- 18. Puis-je utiliser le classpath pour remplacer un fichier dans un fichier jar en cours d'exécution?
- 19. en C, comment utiliser la fonction du fichier programme principal dans un fichier de bibliothèque partagée
- 20. Comment utiliser JQuery pour détecter si un fichier a été sélectionné dans un fichier?
- 21. Signature de code, dois-je générer un fichier de clés?
- 22. Contenu du fichier de vidage (.ds) dans un fichier texte
- 23. Comment utiliser mod_rewrite pour un seul fichier?
- 24. Comment inclure un fichier de langue de définition en javascript?
- 25. Inclure un fichier de commandes dans un fichier de commandes
- 26. Définition dynamique d'une URL d'image dans un fichier xsl
- 27. Comment utiliser un fichier .js?
- 28. comment incorporer un fichier xml dans un fichier de ressources
- 29. Définition du type de fichier dans ASP.net fileupload
- 30. CC2SVN - Problème de migration du bocal