java - Spark-java如何导入带有jar内路径的 keystore 文件

标签 java ssl jar keystore spark-java

我有一个 Spark-java 应用程序,它有几个端点。现在我为我的域创建了一个带有 SSL 证书的 keystore 文件。

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

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

如果我从 intteliJ 内部运行我的应用程序,它能够运行,但是一旦我将我的应用程序打包到 jar 文件中,它就找不到 keystore 文件。我在网上搜索了很多,问题的答案是:使用输入流。现在 spark 只允许您提供路径,而不是输入流。

是否仍然可以通过指定路径从 jar 中访问 keystore 文件?或者这是不可能的 atm 与 spark?

最佳答案

当您将应用程序打包到 jar 文件中时,无法找到 src 路径,因为它已不存在。
Intelij IDEA/Project Structure windows/Modules 部分,您可以找到 Resource 目录。您放在 Resource 目录中的每个文件/文件夹都会被复制到 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);
            }
        }

关于java - Spark-java如何导入带有jar内路径的 keystore 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48487246/

相关文章:

Java单元测试: Test from public method or package private method

java - 无法在 Spring Boot 中将受让人设置为 activiti 中的第二个用户任务

ios - RestKit IOS SSL 证书无效

ssl - 转移到 SSL,失去了我的社交分享按钮计数,现在需要使用旧的 http url 来找回它们

java - 在 32 位 JVM 中双击启动 jar,但在 64 位 JVM 中从控制台启动

java - maven 依赖关系树显示父 jar 中不存在的依赖关系?

java - 如何通过 POJO 在 Hibernate 中防止 SQL 注入(inject)

java - 如何在不增加文件限制的情况下用 Java 打开 20000 个客户端?

ios - Cocoapods,无法使用 pod setup 和 pod install

java - 没有 IDE 时如何在项目中添加/引用 .jar 文件