Jetty不接受XML文件属性定义的命令行替换

时间:2016-09-15 16:24:29

标签: jetty jetty-9

我的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:Keystore被tamered,或者密码不正确。

码头-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>

1 个答案:

答案 0 :(得分:1)

显然Jetty 9在命令行中看到“banana”和“Changeme”中的引号作为密码的一部分。在Jetty 8中不是这种情况。删除引号后:

-Djetty.sslContext.keyStorePassword=banana-Djetty.sslContext.trustStorePassword=Changeme

它运作良好。