【问题标题】:where to place .jks file in springapp and what relative path to provide in cxf.xml在 springapp 中放置 .jks 文件的位置以及在 cxf.xml 中提供的相对路径
【发布时间】:2015-08-27 20:58:52
【问题描述】:

我有一个 spring 应用程序,它充当相互身份验证的客户端(向配置为相互身份验证的服务器发送请求)。在客户端 springapp 中,我在 src/main/resources 中有一个 cxf.xml 文件。该文件被正确拾取。但是对 .jks 文件的引用似乎不起作用

我的 cxf.xml 文件有一个定义为的管道:

<http:tlsClientParameters>
  <sec:keyManagers keyPassword="xxxx">
    <sec:keyStore type="JKS" password="xxxx"
                  file="xyz.jks"/>
  </sec:keyManagers>
</http:tlsClientParameters>

<http:client AutoRedirect="true" Connection="Keep-Alive"/>

我总是收到一个错误,说找不到文件。 有人可以帮我弄清楚我可以在我的 spring 应用程序中放置这个 .jks 文件的位置以及我可以在上面的 cxf.xml httpconduit 中提供的相对路径,以便正确选择 xyz.jks 文件吗?

【问题讨论】:

  • 据我所知,您不必像Tomcat这样配置应用程序服务器以包含JKS文件位置及其密码。在 webapp 中,您必须提及哪个 URL 使用 https。
  • 您是否尝试使用“资源”属性而不是“文件”属性?它应该可以帮助您在类路径中引用资源(在您的情况下为文件)

标签: java spring spring-mvc cxf mutual-authentication


【解决方案1】:

CXF Xml 模式在 sec:keyStore 元素上定义了一个 resource 属性,这使得可以引用密钥库的文件(JKS、PKCS12 等... ) 来自类路径。它与 file 属性互斥(可能存在 resourcefile 属性之一,但不能同时存在)

【讨论】:

    【解决方案2】:

    您可以使用“资源”属性而不是“文件”属性来进行相对寻址:

    <http:tlsClientParameters>
      <sec:keyManagers keyPassword="xxxx">
        <sec:keyStore type="JKS" password="xxxx" resource="xyz.jks"/>  
      </sec:keyManagers>
    </http:tlsClientParameters>
    <http:client AutoRedirect="true" Connection="Keep-Alive"/>
    

    【讨论】:

      猜你喜欢
      • 2013-03-01
      • 2021-04-12
      • 2011-06-06
      • 1970-01-01
      • 2012-03-23
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多