¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como resolver o erro wsse:InvalidSecurity na segunda chamada SOAP

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 1 Vistas
0
Cargando...

Olá,

Tenho tentado implementar um pequeno script em PHP para enviar ideias para xPD 2.0. A primeira fase é bem-sucedida (a ideia é enviada e o guid é obtido). No entanto, ao tentar enviar um arquivo anexado usando um serviço web diferente, recebo esta mensagem de erro:

wsse:InvalidSecurity. 00E000C4EA35007A0000035700001077000412CCC9797F64 : WS Security só pode ser aplicado a um documento SOAP.

Alguma ideia do porquê minha segunda chamada SOAP está falhando?

Aqui estão ambos os scripts:

submit.php (isto funciona)

[código]

<?php

$title = $_POST['title'];

$description = $_POST['description'];

$source = $_POST['source'];

$client = new SoapClient('our_server/WSxPDService/WSxPDServiceConfig?wsdl',

array('login' => "xxx", 'password' => "xxx", 'style' => SOAP_DOCUMENT));

$header = array("description" => $description,

"owner" => "xxx",

"title" => $title,

"guid" => "",

"source" => $source,

"author" => "xxx",

"protectionLevel" => "Normal",

"relatedInsights" => "",

"relatedFacts" => ""

);

try {

$result = $client->createIdea(array("header" => $header));

} catch (SoapFault $exception) {

die("<b>Falha ao enviar a ideia!</b><br>" . $exception->content);

}

$guid = $result->Response;

include("attachment.inc");

?>

[/código]

submitAttachment.php (isto não funciona)

[código]

<?php

$guid = $_POST['guid'];

$name = $_POST['name'];

$attachment = $_FILES['attachment']['tmp_name'];

$contents = file_get_contents($attachment);

$client = new SoapClient('our_server/WSxPDExternalIdeaAttachment/EIAttachmentConfig?wsdl ', array('login' => "xxx", 'password' => "xxx"));

try {

$result = @$client->addIdeaAttachment( $guid, $name, $contents );

} catch (SoapFault $exception) {

die("<b>Falha ao carregar o arquivo anexado!</b><br>" . $exception->faultcode . ". " . $exception->faultstring . "<br><b>" . var_dump($exception));

}

Header("Location: addAttachments.php?guid=$guid");

exit;

?>

[/código]

Atenciosamente,

Johannes

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá Anton,

Há apenas um estilo chamado 'mime' disponível. Em seguida, há a versão padrão e SAP disso. Eu testei ambos.

Tentei alterar o construtor assim (sem sucesso):

[código]

$client = new SoapClient('http://xxxx:50200/WSxPDExternalIdeaAttachment/EIAttachmentConfig?wsdl',

array('login' => "xxx", 'password' => "xxx", "style" => 'mime'));

[/código]

Aqui está o wsdl padrão:

<?xml version="1.0" encoding="utf-8"?>

<!-- Gerado por WSDLDefinitionsParser --><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="WSxPDExternalIdeaAttachmentWsd" targetNamespace="urn:WSxPDExternalIdeaAttachmentWsd" xmlns:bns0="urn:WSxPDExternalIdeaAttachmentWsd/EIAttachmentConfig/mime" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">

<wsdl:import location="./bindings/EIAttachmentConfig_mime.wsdl" namespace="urn:WSxPDExternalIdeaAttachmentWsd/EIAttachmentConfig/mime"/>

<wsdl:service name="WSxPDExternalIdeaAttachment">

<wsdl:port name="EIAttachmentConfigPort_Mime" binding="bns0:EIAttachmentConfigBinding">

<soap:address location="http://xxxx:50200/WSxPDExternalIdeaAttachment/EIAttachmentConfig?style=mime"/>

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

Links:

<?xml version="1.0" encoding="utf-8"?>

<!-- Gerado por WSDLDefinitionsParser --><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:WSxPDExternalIdeaAttachmentWsd/EIAttachmentConfig/mime" xmlns:prt0="urn:WSxPDExternalIdeaAttachmentWsd/WSxPDExternalIdeaAttachmentVi/rpc_enc" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/">

<wsdl:import location="../porttypes/EIAttachmentConfig_WSxPDExternalIdeaAttachmentVi_rpc_enc.wsdl" namespace="urn:WSxPDExternalIdeaAttachmentWsd/WSxPDExternalIdeaAttachmentVi/rpc_enc"/>

<wsdl:binding name="EIAttachmentConfigBinding" type="prt0:WSxPDExternalIdeaAttachmentVi_Rpc_enc">

<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>

<wsdl:operation name="addIdeaAttachment">

<soap:operation soapAction=""/>

<wsdl:input>

<mime:multipartRelated>

<mime:part>

<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:WSxPDExternalIdeaAttachmentVi"/>

</mime:part>

<mime:part>

<mime:content part="content" type="application/octetstream"/>

</mime:part>

</mime:multipartRelated>

</wsdl:input>

<wsdl:output>

<mime:multipartRelated>

<mime:part>

<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:WSxPDExternalIdeaAttachmentVi"/>

</mime:part>

</mime:multipartRelated>

</wsdl:output>

<wsdl:fault name="com.sap.xapps.xpd.webservices.exception.BOCreateException">

<soap:fault use="encoded" name="com.sap.xapps.xpd.webservices.exception.BOCreateException" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>

</wsdl:fault>

</wsdl:operation>

<wsdl:operation name="getIdeaCategories">

<soap:operation soapAction=""/>

<wsdl:input>

<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:WSxPDExternalIdeaAttachmentVi"/>

</wsdl:input>

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá,

O WSDL também seria útil. O WSDL define o estilo como 'documento'?

Acredito que há um problema de estilo. Talvez o WSDL esteja definido como rpc, ou talvez esteja faltando a declaração style = SOAP_DOCUMENT no construtor do seu cliente.

Saudações,

Anton

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Gregor,

A versão do PHP é 5.1.2.

Estamos rodando no Web AS Java 7.00 SP 5 (produto Ramp-Up) com Portal 7.00 e xPD 2.0 SP1.

No início, pensei que poderia ser algum tipo de problema de autorização, mas essa configuração deveria ser semelhante à do serviço que está funcionando.

Aqui está a solicitação SOAP que é enviada para o serviço web.

<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

<SOAP-ENV:Body>

<SOAP-ENV:addIdeaAttachment>

<ideaGuid>d0cc4480-da69-11da-be20-00e000c4ea35</ideaGuid>

<name>debug_settings.jpg</name>

<content>/9j/4AAQ... //omitir o restante do conteúdo // ...AL1FFFAH/2Q==</content>

</SOAP-ENV:addIdeaAttachment>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Saudações,

Johannes

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá, Johannes,

Poderia nos contar um pouco mais sobre o seu panorama de sistemas? Qual versão exata do PHP e WebAS você está utilizando, incluindo os Service Packs?

Saudações,

Gregor

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?