Jetty 不接受 XML 文件 属性 定义的命令行替换
Jetty not accepting command line substitutions for XML file property definitions
我的 jetty-ssl-context.xml 配置有问题。当我使用正确的密钥库路径和密码设置我的配置时(如下所示),Jetty 启动正常,一切正常。但是当我删除默认值时,如我所愿,并在命令行中传递它们:
java -jar ../start.jar -Djetty.sslContext.keyStorePath=etc/myKeySore.jks -Djetty.sslContext.keyStorePassword="banana" -Djetty.sslContext.trustStorePath=etc/myTrust.jks -Djetty.sslContext.trustStorePassword="Changeme"
我得到异常:java.io.IOException:密钥库被篡改,或者密码不正确。
jetty-ssl-context.xml:
<!-- SSL ContextFactory Configuration -->
<Configure id="sslContextFactory class="org.eclipse.jetty.util.ssl.SslContextFactory">
<Set name="KeyStorePath">
<Property name="jetty.sslContext.keyStorePath" deprecated="jetty.keystore" default="etc/myKeystore"/>
</Set>
<Set name="KeyStorePassword">
<Property name="jetty.sslContext.keyStorePassword" deprecated="jetty.keystore.password" default="banana"/>
</Set>
<Set name="KeyStoreType">
<Property name="jetty.sslContext.keyStoreType" default="JKS"/>
</Set>
<Set name="KeyManagerPassword">
<Property name="jetty.sslContext.keyManagerPassword" deprecated="jetty.keymanager.password" default="banana"/>
</Set>
<Set name="TrustStorePath">
<Property name="jetty.sslContext.trustStorePath" deprecated="jetty.truststore" default="etc/myTrust.jks"/>
</Set>
<Set name="TrustStoreType">
<Property name="jetty.sslContext.trustStoreType" default="JKS"/>
</Set>
<Set name="TrustStorePassword">
<Property name="jetty.sslContext.trustStorePassword" deprecated="jetty.truststore.password" default="Changeme"/>
</Set>
<Set name="TrustStoreProvider">
<Property name="jetty.sslContext.trustStoreProvider"/>
</Set>
显然 Jetty 9 在命令行上看到 "banana" 和 "Changeme" 中的引号作为密码的一部分。 Jetty 8 不是这种情况。删除引号后阅读:
-Djetty.sslContext.keyStorePassword=banana
和
-Djetty.sslContext.trustStorePassword=Changeme
它运行良好。
我的 jetty-ssl-context.xml 配置有问题。当我使用正确的密钥库路径和密码设置我的配置时(如下所示),Jetty 启动正常,一切正常。但是当我删除默认值时,如我所愿,并在命令行中传递它们:
java -jar ../start.jar -Djetty.sslContext.keyStorePath=etc/myKeySore.jks -Djetty.sslContext.keyStorePassword="banana" -Djetty.sslContext.trustStorePath=etc/myTrust.jks -Djetty.sslContext.trustStorePassword="Changeme"
我得到异常:java.io.IOException:密钥库被篡改,或者密码不正确。
jetty-ssl-context.xml:
<!-- SSL ContextFactory Configuration -->
<Configure id="sslContextFactory class="org.eclipse.jetty.util.ssl.SslContextFactory">
<Set name="KeyStorePath">
<Property name="jetty.sslContext.keyStorePath" deprecated="jetty.keystore" default="etc/myKeystore"/>
</Set>
<Set name="KeyStorePassword">
<Property name="jetty.sslContext.keyStorePassword" deprecated="jetty.keystore.password" default="banana"/>
</Set>
<Set name="KeyStoreType">
<Property name="jetty.sslContext.keyStoreType" default="JKS"/>
</Set>
<Set name="KeyManagerPassword">
<Property name="jetty.sslContext.keyManagerPassword" deprecated="jetty.keymanager.password" default="banana"/>
</Set>
<Set name="TrustStorePath">
<Property name="jetty.sslContext.trustStorePath" deprecated="jetty.truststore" default="etc/myTrust.jks"/>
</Set>
<Set name="TrustStoreType">
<Property name="jetty.sslContext.trustStoreType" default="JKS"/>
</Set>
<Set name="TrustStorePassword">
<Property name="jetty.sslContext.trustStorePassword" deprecated="jetty.truststore.password" default="Changeme"/>
</Set>
<Set name="TrustStoreProvider">
<Property name="jetty.sslContext.trustStoreProvider"/>
</Set>
显然 Jetty 9 在命令行上看到 "banana" 和 "Changeme" 中的引号作为密码的一部分。 Jetty 8 不是这种情况。删除引号后阅读:
-Djetty.sslContext.keyStorePassword=banana
和
-Djetty.sslContext.trustStorePassword=Changeme
它运行良好。