Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-12-2011
ruedabeat2003 ruedabeat2003 is offline
Miembro
 
Registrado: mar 2007
Posts: 66
Poder: 18
ruedabeat2003 Va por buen camino
COVE. Encabezados en XML-Cliente Webservice-SOAP

Hola, estoy ejecutando mi funcion al Cliente de Webservice Delphi(WSDL-Importer)pero la respuesta que tengo del Web es el error:
Código:
<faultstring>Error on verifying message against security policy Error code:1000</faultstring>
Creo que todo se debe a que aún cuando mi XML esta ya formado, en el encabezado del mismo me hacen falta algunos Elementos en el Encabezado, un archivo de ejemplo me indica que tendría que enviarlo de la siguiente manera:
Código:
  <?xml version="1.0" encoding="UTF-8" ?> 
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:oxml="http://www.ventanillaunica.gob.mx/cove/ws/oxml/">
- <soapenv:Header>
- <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
- <wsse:UsernameToken>
  <wsse:Username>GWT921026L97</wsse:Username> 
  <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">2eSBtD+Go01Kaka4YoLqrsvDWrP1AZn1nFZTQmT/3S7EFZVD5Pvju09ybA5nwMCK</wsse:Password> 
  </wsse:UsernameToken>
  </wsse:Security>
  </soapenv:Header>
- <soapenv:Body>
- <oxml:solicitarRecibirCoveServicio>
- <!-- 1 or more repetitions:
  --> 
- <oxml:comprobantes>
  <oxml:tipoIdentificador>1</oxml:tipoIdentificador> 
  <oxml:identificacion>GWT921026L97</oxml:identificacion> 
...
Lo que yo obtengo de mi aplicacion Cliente es lo siguiente:
Código:
  <?xml version="1.0" ?> 
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <SOAP-ENV:Body>
- <SOAP-ENV:SolicitarRecibirCoveServicio>
- <comprobantes xmlns="http://www.ventanillaunica.gob.mx/cove/ws/oxml/">
  <tipoIdentificador>_22</tipoIdentificador> 
  <identificacion>TOAR001116HDFRRL02</identificacion> 
...
¿Como puedo agregar los Elementos de Seguridad UserName y Password así como todas las demas furnituras que se pueden ver en el archivo Ejemplo? ¿Y todos esos prefijos "<wsse:elemento> como los pongo?
Responder Con Cita
  #2  
Antiguo 29-12-2011
ruedabeat2003 ruedabeat2003 is offline
Miembro
 
Registrado: mar 2007
Posts: 66
Poder: 18
ruedabeat2003 Va por buen camino
Encabezados=Header

Bien, pues el Header se hace con siguiente llamada:
Código:
   el_header2 := TWsseHeader.Create;

 el_header2.Username := 'TOAR0011165W7';
 el_header2.KerberosToken := 'TCY2SCOki4mo0EwgiA7X7tfmCHXqIP+dvAdHFFO/utZgui9hvfs7Zg5t2QVmFBw';     

 HTTPRIO1.SOAPHeaders.Send(el_header2);
He definido lo siguiente:
Código:
  TWsseHeader = class(TSOAPHeader)
  private
    FPassword: AnsiString;
    FUsername: AnsiString;
  public
    function ObjectToSOAP(RootNode, ParentNode: IXMLNode;
      const ObjConverter: IObjConverter;const Name, URI: InvString;
      ObjConvOpts:TObjectConvertOptions;out RefID: InvString): IXMLNode; override;
    property PasswordToken: AnsiString read FPasswordToken write FPasswordToken ;
    property Username: AnsiString read FUsername write FUsername;

const
WSSE_NS_PRE = 'wsse';
WSSE_NS_URI = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-ws-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1';
UTIL_NS_PRE = 'wsu';
UTIL_NS_URI = 'schemas.xmlsoap.org/ws/2002/07/utility';
NSDELIM = ':';
{ TWsseHeader }
function TWsseHeader.ObjectToSOAP(RootNode, ParentNode: IXMLNode;
const ObjConverter: IObjConverter; const Name, URI: InvString;
ObjConvOpts: TObjectConvertOptions; out RefID: InvString): IXMLNode;
var
binsec: IXMLNode;
begin
ParentNode.AddChild(WSSE_NS_PRE + NSDelim + 'Security',WSSE_NS_URI);
Result := ParentNode.AddChild(WSSE_NS_PRE + NSDelim + 'UsernameToken',WSSE_NS_URI);
binsec := Result.AddChild(WSSE_NS_PRE + NSDelim + 'Username', WSSE_NS_URI);
binsec.Text := FUsername;
binsec := Result.AddChild(WSSE_NS_PRE + NSDelim + 'Password', WSSE_NS_URI);
binsec.Attributes['Type'] := 'http://docs.oasis-#PasswordText';
binsec.Text := FPasswordToken ;
end;
Y obtuve lo siguiente:
Código:
 <?xml version="1.0" ?> 
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <SOAP-ENV:Header>
  <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-ws-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1" /> 
- <wsse:UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-ws-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
  <wsse:Username>TOAR0011165W7</wsse:Username> 
  <wsse:Password Type="http://docs.oasis-#PasswordText">TCY2SCOki4mo0EwgiA7X7tfmCMHXqIP+dvAdHFFO/utZgui9hvfs7Zg5t2QVmFBw</wsse:Password> 
  </wsse:UsernameToken>
  </SOAP-ENV:Header>
- <SOAP-ENV:Body>
- <SOAP-ENV:SolicitarRecibirCoveServicio>
...
Ya lo unico que me falta es cerrar el Tag <wsse:Security> pues no esta su tag Final.

Que le falta a mi Metodo ???

Mañana otra vez a prueba y error.

Saludos.
Responder Con Cita
  #3  
Antiguo 29-12-2011
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 14
dado Va por buen camino
Aqui esta la solucion para el envio del COVE

http://www.validacfd.com/index.php?load=cove
Responder Con Cita
  #4  
Antiguo 29-12-2011
Mario san Mario san is offline
Registrado
NULL
 
Registrado: dic 2011
Posts: 1
Poder: 0
Mario san Va por buen camino
Saludos! Vengo encontrando este foro y pues, por causas ajenas a mi, vamos empezando el proyecto, solo que lo estoy haciendo en C# .net

De principio me dijeron que tenia que enviar un XML, para luego recibir un XML de regreso, pero solo vi objetos y son los que llene.
No me quedan algunas cosas claras, he llenado los objetos del WS, pero no se como autenticarme para mandar la informacion, es esto de los headers la forma?

Gracias!
Responder Con Cita
  #5  
Antiguo 10-01-2012
ruedabeat2003 ruedabeat2003 is offline
Miembro
 
Registrado: mar 2007
Posts: 66
Poder: 18
ruedabeat2003 Va por buen camino
Asi es, en el header especificamente en el UserNameToken tienes 2 elementos, username y password, es ahi donde debes autentificarte.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SOAP POST - Webservice con Certificado y SSL JXJ Varios 5 09-05-2011 20:11:08
Consumir WebService. Ayuda con XML,WSDL,XSD,SOAP josemmerida Internet 2 23-12-2010 13:37:16
cliente Web service SOAP php papulo PHP 0 13-02-2009 11:41:16
Ayuda con SOAP. Requisitos en el cliente? rolandoj Internet 5 27-10-2008 18:41:12
WebService y SOAP linsua Varios 0 07-04-2004 19:27:16


La franja horaria es GMT +2. Ahora son las 11:37:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi