在conf/server.xml中,我编写了以下文本:
<Connector port="8443" SSLEnabled="true" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="200"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="keyStore" keystorePass="password" keystoreType="JKS"
keyAlias="tomcat"/>接下来,我需要在代码中使用keyStore的内容(服务器端的servlet中)。
我试过这个:
System.getProperty("javax.net.ssl.keyStore")但是它返回keyStore的名称。
那么,有什么方法可以获取keyStore的内容吗?或者我应该再做一次服务器配置?
(我的下一步是从keyStore中提取私钥和公钥,并将它们用于JWT)
发布于 2017-10-18 15:31:00
我想您应该能够通过ServerFactory.getServer().findServices()[0].findConnectors()[0]或org.apache.tomee.loader.TomcatHelper.getServer()获得参数值(取决于您的Tomcat版本--参见this question),然后使用它们像往常一样打开密钥存储库(KeyStore.getInstance(...).load(...))。
但是,我建议您使用另一个keystore + key,用于满足JWT需要的专用配置,这样:
如果应用程序中没有配置文件,并且不想添加配置文件,那么只需使用keystore的路径来定义系统属性。例如,在命令行上使用-Djwt.keystore=<keystore location>启动Tomcat。
https://stackoverflow.com/questions/46813253
复制相似问题