Copy link to clipboard
Copied
I have the opportunity to work with a client's WSDL (that doesn;t sound nice ). This particular WSDL uses Digest authentication. Has anyone ever done something like this before? I am going to try it and see what results I get. WIll post back any necessary code/messages.
~Clay
Copy link to clipboard
Copied
ok...I think I may have the digest authentication thing licked utilizing cflogin (I did not realize it handled digest). But am having trouble getting the WSDL to work with either cfinvoke or createobject. I would appreciate any assistance.
Here is the WSDL url...
http://ws.vinlink.com/VLWS/services/Decoder?wsdl
I also have some documentation from the vendor, but still have difficulties. I will try to figure out how to attach the doc, but here is a sampling that might help...
This system provides VIN decoding report information to ESP Data Solutions, Inc. customers who are
interested in purchasing the “raw” data, rather than the HTML or PDF - formatted version available
off the VinLINK Report Web site (http://www.vinlink.com/).
The basics of the system :
it receives a request consisting of:
• Encrypted authentication information (user id and password using digest authentication)
• VIN
• Reporting level desired (BASIC Report,Factory Equipment Data Decode Report (FEDOR))
• Reporting language desired (‘ENG’ - American English or ‘ESP‘ - Mexican Spanish)
The VinLINK System than will a reply with the data available to satisfy the request.
Vin Specification (use method: getVinSpecification() )
This data set contains a basic vehicle information decoded from a VIN of total of 50 attributes
Copy link to clipboard
Copied
ok...an update...I think I may have figured out the web service request, but I cannot seem to link the rquest with the security header. As I mentioned earlier, I was able to use cflogin to perfomr the digest authentication, but I cannot tie the two together. When I tried the following code...
<cfscript>
stUser = structNew();
stUser.USERNAME_PROPERTY = "yada";
stUser.PASSWORD_PROPERTY = "yada";
stUser.language = "eng";
stVindecode.VIN = "1FMCUo4112KA7126";
stVindecode.reportType = "BASIC";
ws = createObject("webservice", "http://ws.vinlink.com/VLWS/services/Decoder?wsdl");
ws.decode('1FMCUo4112KA7126','BASIC');
</cfscript>
The fault returned when invoking the web service operation is:<br> <pre>AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client faultSubcode: faultString: WSS4JInHandler: Request does not contain required Security header faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:WSS4JInHandler: Request does not contain required Security header at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221) at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128) at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) a... ''</pre> |
Copy link to clipboard
Copied
Ok...could not tie the two together, but in dealing with the vendor, I discovered they did have a basic authentication. So I used cfhttp. If anyone does come up with a way to use Diget auth, I would like to know.