4

我正在使用 AXIS2 框架来创建 Web 服务。现在我使用 ramprt 保护了我的网络服务。现在整个请求和响应都将被签名和加密。

现在我的疑问是如何在 SOAP UI 中测试它。当我加载 wsdl 文件时,它给了我如下。

    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soapenvelope"
       xmlns:sam="http://sample03.policy.samples.rampart.apache.org">
    <soap:Header/>
     <soap:Body>
        <sam:echo>
              <!--Optional:-->
              <sam:args0>?</sam:args0>
        </sam:echo>
    </soap:Body>
  </soap:Envelope>

现在如何放置与数字证书相关的数据以及如何加密要发送到轴服务器的内容。

谢谢,纳伦德拉

4

1 回答 1

2

证书数据存储在 Outflowsecurity.xml 和 Inflowsecurity.xml 两个 xml 文件中,它们应如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="action">
        <xs:annotation>
            <xs:documentation>Outflow security 'action' configuration</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="items" type="xs:string"/>
            <xs:element name="user" type="xs:string"/>
            <xs:element name="passwordCallbackClass" type="xs:string" minOccurs="0"/>
            <xs:element name="signaturePropFile" type="xs:string" minOccurs="0"/>
            <xs:element name="encryptionPropFile" type="xs:string" minOccurs="0"/>
            <xs:element name="encryptionPropFile" type="xs:string" minOccurs="0"/>
            <xs:element name="signatureKeyIdentifier" type="xs:string" minOccurs="0"/>
            <xs:element name="encryptionKeyIdentifier" type="xs:string" minOccurs="0"/>
            <xs:element name="encryptionUser" type="xs:string" minOccurs="0"/>
            <xs:element name="signatureParts" type="xs:string" minOccurs="0"/>

            <xs:element name="encryptionParts" type="xs:string" minOccurs="0"/>
            <xs:element name="optimizeParts" type="xs:string" minOccurs="0"/>
            <xs:element name="encryptionSymAlgorithm" type="xs:string" minOccurs="0"/>
            <xs:element name="EmbeddedKeyCallbackClass" type="xs:string" minOccurs="0"/>
            <xs:element name="encryptionKeyTransportAlgorithm" type="xs:string" minOccurs="0"/>
            <xs:element name="EmbeddedKeyName" type="xs:string" minOccurs="0"/>
            <xs:element name="timeToLive" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

</xs:element>

有关更多详细信息,请访问Apache 帮助页面

要在请求中使用身份验证,您需要将标签添加到 soap:Header

<soapenv:Header>
    <wsse:Security
        soapenv:mustUnderstand="1">
        <wsu:Timestamp
            wsu:Id="Timestamp-31497899">
            <wsu:Created>2008-02-06T13:39:50.943Z</wsu:Created>
            <wsu:Expires>2008-02-06T13:44:50.943Z</wsu:Expires>
        </wsu:Timestamp>
        <wsse:UsernameToken
            wsu:Id="UsernameToken-10697954">
            <wsse:Username>apache</wsse:Username>
            <wsse:Password
                Type="http://...#PasswordText">password</wsse:Password>
        </wsse:UsernameToken>
    </wsse:Security>
</soapenv:Header>

命名空间是:

xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
于 2010-11-16T13:06:28.677 回答