我正在尝试运行一个在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调用,允许用户将keystore类型从jetty的默认jks更改为其他类型。
我的计划是:
下载spark 2.9.2源代码。
在spark文件/src/main/java/spark/embeddedserver/jetty/socketconnectorfactory.java的createsecuresocketconnector方法中,调用sslcontextfactory.setkeystoretype(androidsupportkeystoretype)将密钥库类型切换到android支持的密钥库类型。
重建类并创建一个新的修改过的sparkjar。
用这个新的修改过的spark jar重建我的应用程序。
我正在考虑使用bks或pkcs12作为密钥库类型。
有没有其他人在android上成功运行spark服务器并支持https请求?如有任何建议,将不胜感激。
1条答案
按热度按时间bpsygsoo1#
由于java8附带了jep-229,java运行时的默认密钥库类型是pkcs12。
我想如果
secure(...)
spark方法也接受密钥库类型的参数。如果他们对这方面的贡献感兴趣的话,也许你应该去看看他们的问题追踪者。