Включить тег безопасности в заголовке в клиенте Java Java - PullRequest
0 голосов
/ 21 июня 2019

Я подключился к внешнему wsdl и сейчас пытаюсь отправить сообщение и получить ответ, используя приложение Java в NetBeans.

После отправки запроса я получаю сообщение об ошибке: «Обработчику безопасности не удалось найти заголовок безопасности в сообщении. ' и я пытаюсь включить отметки безопасности и времени в сообщении, но пока безуспешно.

До сих пор я пытался использовать WebServiceFeatures, такие как RespectBindingFeature () и Addressingfeatures (), а также пытался вставить туда теги вручную, но это не очень хорошая практика, а также куча других маленьких экспериментов.

Мой запрос выглядит так:

            QName client = new QName("http://IVerification/VerifyDocument", "SecureWSHttpBinding_IVerification", "Https");

VerificationServiceBus service = new VerificationServiceBus();
IVerification port = service.getHttps(new AddressingFeature(true), new RespectBindingFeature(true));


            //request and input starts here
Request request = new Request();

            // Setting values to send over
                request.setFamilyName(familyName);
                request.setGivenName(givenName);

            System.out.println("Result = "); //works up to here 

            VerificationResponse result = port.verifyDocument(request);
            //.getVerificationResultCode();
            System.out.println("Result = " + result.getVerificationResultCode());

        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }

Тег моего заголовка в моем конверте SOAP выглядит так:

    <To xmlns="http://www.w3.org/2005/08/addressing">https://test.com.au:19443/Bus/VerificationServiceBus.svc/Https</To><Action xmlns="http://www.w3.org/2005/08/addressing">http://DVS/Common/2014/06/Contract/Service/Manager/IVerification/VerifyDocument</Action><ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
        <Address>
        http://www.w3.org/2005/08/addressing/anonymous
    </Address>
    </ReplyTo>
        <FaultTo xmlns="http://www.w3.org/2005/08/addressing">
        <Address>
        http://www.w3.org/2005/08/addressing/anonymous
    </Address>
    </FaultTo>
    <MessageID xmlns="http://www.w3.org/2005/08/addressing">
        uuid:89592e0e-c7e4-46ab-8852-1651651345</MessageID>
</S:Header> 

Хотя успешный выглядит так:

        <a:Action s:mustUnderstand="1">http://IVerification/VerifyDocument</a:Action>
        <a:MessageID>urn:uuid:5ddffdda99-5a0d-9567-bb23-635465435</a:MessageID>
        <a:ReplyTo>
            <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
        </a:ReplyTo>
        <VsDebuggerCausalityData xmlns="http://schemas.microsoft.com/vstudio/diagnostics/servicemodelsink">uIDPo2/NnP1g9fROISJHS25vYClYcJJJJ0QrfpWi6zkFUTFDIVBOI/7z+nHYxfU2pLo4cij3myeGIYGIY</VsDebuggerCausalityData>
        <a:To s:mustUnderstand="1" u:Id="_1">https://test.com.au:19443/Bus/VerificationServiceBus.svc/Https</a:To>
        <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
            <u:Timestamp u:Id="_0">
                <u:Created>2018-10-23T23:53:41.651Z</u:Created>
                <u:Expires>2018-10-23T23:58:41.651Z</u:Expires>
            </u:Timestamp>
            <o:BinarySecurityToken>
                <!-- Removed-->
            </o:BinarySecurityToken>
            <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
                <SignedInfo>
                    <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></CanonicalizationMethod>
                    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></SignatureMethod>
                    <Reference URI="#_0">
                        <Transforms>
                            <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform>
                        </Transforms>
                        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
                        <DigestValue>dbwqisdygI98nEEw/rUCbvtazU=</DigestValue>
                    </Reference>
                    <Reference URI="#_1">
                        <Transforms>
                            <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform>
                        </Transforms>
                        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
                        <DigestValue>pNOIUGUInMLeJ+zswIUYFGIYG=</DigestValue>
                    </Reference>
                </SignedInfo>
                <SignatureValue><!-- Removed --></SignatureValue>
                <KeyInfo>
                    <o:SecurityTokenReference>
                        <o:Reference ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" URI="#uuid-385f01dc-fd05-459f-8da9-d32b3310cdd2-1"></o:Reference>
                    </o:SecurityTokenReference>
                </KeyInfo>
            </Signature>
        </o:Security>
    </s:Header>

Я ожидал бы простого результата, такого как «Y» или «N», но по-прежнему не могу включить мои теги безопасности.

Любая помощь будет принята с благодарностью.

Спасибо

...