【问题标题】:How to add security to the webservice programmatically如何以编程方式为 Web 服务添加安全性
【发布时间】:2017-01-04 13:05:00
【问题描述】:

我一直致力于通过 https 调用 Web 服务的任务。 wsdl 本身包含以下有关安全性的信息 -

<wsid:Identity xmlns:wsid="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
<dsig:KeyInfo xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
<dsig:X509Data>
<dsig:X509Certificate>
**XXX**
</dsig:X509Certificate>
<dsig:X509IssuerSerial>...</dsig:X509IssuerSerial>
<dsig:X509SubjectName>CN=FAEncryption, DC=cloud, DC=oracle, DC=com</dsig:X509SubjectName>
<dsig:X509SKI>**ZZZ**</dsig:X509SKI>
<dsig:X509Certificate>
**YYY**
</dsig:X509Certificate>
</dsig:X509Data>
</dsig:KeyInfo>
</wsid:Identity>

现在使用这些信息,我通过以下过程获得了证书 -

  1. 使用您喜欢的任何名称创建一个新文件。您必须将扩展名更改为 .cer 以表明它是一个证书文件。

  2. 使用文本编辑器打开刚刚创建的文件并在第一行输入“-----BEGIN CERTIFICATE-----”。

  3. 在下一行,将 Base64 编码的证书从服务 WSDL 文件复制到新创建的证书文件中。

  4. 在新行上添加“-----END CERTIFICATE-----”并保存文件。现在您有一个包含来自服务器的公钥的证书。

  5. 打开命令行并将目录更改为 $JAVA_HOME/bin。使用以下命令创建 KeyStore 并从证书中导入公钥。

如果您注意到,在 wsdl 中有两个证书。我将它们都添加到了密钥库中。命令是 -

keytool -import -file ~/ddrive/test/details/SubmitFlow.cer -alias orakey1 -keypass welcome -keystore ~/ddrive/test/details/test.jks -storepass Welcome

keytool -import -file ~/ddrive/test/details/SubmitFlow1.cer -alias orakey1 -keypass welcome -keystore ~/ddrive/test/details/test.jks -storepass Welcome

最初我只添加了一个证书。但后来,我将它们都添加了。我使用 spring-ws 进行 web 服务调用。但是我仍然收到 401 未经授权的呼叫。

我没有任何文件说明需要做什么。如果有人可以在这里指导我,那就太好了。顺便说一句,如果有帮助,这个 Web 服务与 Oracle HCM 相关。

【问题讨论】:

    标签: web-services ssl wsdl x509 spring-ws


    【解决方案1】:

    总之,你已经把WSDL证书导入了一个JKS,但是你没有使用它,所以没有任何作用。

    但这不是问题,事实上,&lt;wsid:Identity&gt; 标签提供了有关如何验证端点身份的信息,而不是有关端点如何验证您的信息。

    401-Unauthorized 表示您尚未提供凭据。首先你需要知道如何在 Web 服务器中进行身份验证:用户名-密码、数字签名等。

    在某些情况下,WSDL 本身包含 &lt;wsp:Policy&gt;,其中包含预期的身份验证方法。在其他情况下,只需查看文档。我建议使用您首选的wsdl2java 工具生成存根,它可能会正确生成处理wsp:policy 的代码

    【讨论】:

      猜你喜欢
      • 2010-12-29
      • 2018-05-25
      • 2012-05-28
      • 2014-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多