我有一个jetty Server,我想为HTTPS流量配置,我可以做到这一点,只需修改一些XML和ini文件(因为这个IoC是首选方式),但是我想访问其中一些是在xml中从其他类配置的,这是在xml:
中<Configure id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
<Set name="KeyStoreType">PKCS12</Set>
<Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.keystore" default="etc/keystore"/></Set>
<Set name="KeyStorePassword"><Property name="jetty.keystore.password" default="OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4"/></Set>
...
我想要的是在我的代码库中的某处调用sslContextFactory.getKeyStorePath()函数。但是这个sslContextFactory实例在哪里,我在哪里可以找到它,我怎么能有它的引用呢?
答案 0 :(得分:0)
我并不完全清楚你在问什么,但无论如何我都要去捅它。听起来您熟悉Jetty作为分发和编辑Jetty XML和ini文件,但现在想要将一些Jetty功能用作嵌入代码的一部分吗?
具体来说,对于SSLContextFactory
,该类包含在distribution附带的jetty-util
jar文件中。您也可以在Maven Central上单独下载该jar文件。
Jetty的官方文档包含几个嵌入式Jetty功能的例子。这个page可以为您提供帮助,特别是Multiple Connectors上使用SSL的示例。
答案 1 :(得分:0)
事实上,它不太可能访问jetty独立服务器的SSLContextFactory。根据定义,Jetty可以同时托管多个应用程序,并且就像这些Java Web应用程序的容器一样。
一个选项可能是使用嵌入式jetty服务器(a solution here),您可以在java应用程序(例如jar包)中启动jetty服务器并保存对SSLContextFactory实例的引用,以便您可以随时重新加载它。
另一个选项可能是使用maven jetty runner,再次来自另一个自定义应用程序,自己控制SslContextFactory。我现在无法确认,我会在尝试后立即更新。