在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)
答案 0 :(得分:0)
我想您应该能够通过ServerFactory.getServer().findServices()[0].findConnectors()[0]
或org.apache.tomee.loader.TomcatHelper.getServer()
获取参数值(具体取决于您的版本)
Tomcat - 请参阅this question),然后像往常一样使用它们打开密钥库(KeyStore.getInstance(...).load(...)
)。
但是我建议您使用另一个密钥库+密钥,在专用配置中满足您的JWT需求,以便:
如果您的应用中没有配置文件,并且不想添加配置文件,那么您可以简单地期望使用密钥库的路径定义系统属性。例如,在命令行上使用-Djwt.keystore=<keystore location>
启动Tomcat。