首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的应用程序如何访问Tomcat server.xml中配置的server.xml?

我的应用程序如何访问Tomcat server.xml中配置的server.xml?
EN

Stack Overflow用户
提问于 2017-10-18 14:57:41
回答 1查看 1.3K关注 0票数 0

在conf/server.xml中,我编写了以下文本:

代码语言:javascript
复制
<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中)。

我试过这个:

代码语言:javascript
复制
 System.getProperty("javax.net.ssl.keyStore")

但是它返回keyStore的名称。

那么,有什么方法可以获取keyStore的内容吗?或者我应该再做一次服务器配置?

(我的下一步是从keyStore中提取私钥和公钥,并将它们用于JWT)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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需要的专用配置,这样:

  • 您的代码没有紧密耦合到Tomcat (=可移植性)
  • 您的操作系统不需要关心您的应用程序的特定需求(并且/或不愿意更新它们在所有tomcat服务器上使用的标准SSL密钥存储库)
  • 您没有使用相同的密钥进行加密(SSL)和授权(JWT)。让攻击者的生活更加艰难总是很好的。

如果应用程序中没有配置文件,并且不想添加配置文件,那么只需使用keystore的路径来定义系统属性。例如,在命令行上使用-Djwt.keystore=<keystore location>启动Tomcat。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46813253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档