Java 在安卓上运行安全的Spark服务器工作吗?

Java 在安卓上运行安全的Spark服务器工作吗?,java,android,https,keystore,spark-java,Java,Android,Https,Keystore,Spark Java,我正在尝试运行一个运行在Android上的Spark(sparkjava.com)服务器应用程序。此服务器需要对HTTPS的支持。我使用的是Spark 2.9.2 下面是在Spark中支持HTTPS的安全调用 安全(“/sdcard/oursecurity/keystore.bks”,“mypassword”,null,null) 当应用程序启动时,它会崩溃,出现java.security.KeyStoreException:JKS not found。 我在各种帖子中看到Android不支持J

我正在尝试运行一个运行在Android上的Spark(sparkjava.com)服务器应用程序。此服务器需要对HTTPS的支持。我使用的是Spark 2.9.2

下面是在Spark中支持HTTPS的安全调用

安全(“/sdcard/oursecurity/keystore.bks”,“mypassword”,null,null)

当应用程序启动时,它会崩溃,出现java.security.KeyStoreException:JKS not found。 我在各种帖子中看到Android不支持JKS密钥库类型

在调试时,我注意到Jetty服务器有一个setKeyStoreType调用,允许用户将密钥库类型从Jetty默认的JKS更改为其他类型

我的计划如下:

  • 下载Spark 2.9.2源代码
  • 在Spark文件/src/main/java/Spark/embeddedserver/jetty/SocketConnectorFactory.java的createSecureSocketConnector方法中,调用sslContextFactory.setKeyStoreType(AndroidSupportKeystoreType)将密钥库类型切换为Android支持的密钥库类型
  • 重建类并创建一个新的修改过的Spark jar
  • 用这个新修改的Spark jar重建我的应用程序
  • 我正在考虑使用BKS或PKCS12作为密钥库类型

    还有其他人在Android上成功运行Spark服务器并支持HTTPS请求吗?如果是这样的话,任何建议都将不胜感激。

    因为Java运行时的默认密钥库类型是PKCS12,这是Java 8附带的


    如果Spark的
    secure(…)
    方法也接受密钥库类型的参数,我想这是有意义的。也许你应该问问他们是否对此感兴趣。

    你已经看到了吗?@mthmulders没有,我没有看到这个问题。谢谢你指出这一点。不幸的是,我的问题不同。我能够在Android中成功运行Spark。但是,当支持HTTPS请求所需的“安全”调用时,我无法在Android中运行Spark。希望我能帮助其他人解答他们的问题。感谢您提供有关默认密钥库类型和问题跟踪器的信息。我可以看一下追踪器。