簡體   English   中英

Spark-java如何用jar里面的路徑導入keystore文件

[英]Spark-java how to import keystore file with path inside jar

我有一個Spark-java應用程序,它有幾個端點。 現在我為我的域創建了一個帶有SSL證書的密鑰庫文件。

這就是我在spark中添加它的方式:

secure("src/deploy/letsencrypt.jks", "mysecretpassword", null, null);

如果我從intteliJ內部運行我的應用程序它能夠運行,但是一旦我將我的應用程序打包到jar文件中,它就找不到密鑰庫文件。 我在網上搜索了很多,問題的答案是:使用輸入流。 現在spark只允許你給出路徑,而不是輸入流。

有沒有辦法仍然從jar中訪問密鑰庫文件,只需指定路徑? 或者這不可能有火花嗎?

在jar文件中打包應用程序時,無法找到src路徑,因為它不再存在。
Intelij IDEA / Project Structure窗口/ 模塊部分中,您可以找到資源目錄。 您放入資源目錄的每個文件/文件夾都將被復制到Jar文件中。

但硬編碼keyStorePath,代碼中的keyStoreKey並不安全。 我建議在運行時將這些變量設置為參數。 像這樣的代碼:

String keyStorePath = System.getProperty("app.httpskey.path");
        String keyStoreKey = System.getProperty("app.httpskey.key");
        if (keyStoreKey != null && keyStorePath != null) {
            try {
                secure(keyStorePath, keyStoreKey, null, null);
                Logger.log("Web server will started in HTTPS mode.");
            } catch (Exception e) {
                Logger.log(e);
            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM