SOAP teenuse testimine: Difference between revisions

From services.krediidiinfo.ee
Jump to navigation Jump to search
(nipetnäpet)
(v2)
Line 1: Line 1:
KiCompany SOAP teenuse testimine kasutades <tt>curl</tt> programmi ning autentimiseks sertifikaadi ja selle võtme paari. Kui see test kliendi keskkonnas õnnestub, siis saab väita, et kliendile väljastatud sertifikaat toimib ning õigused KiCompany kasutamiseks paigas.
Krediidiinfo AS SOAP teenuse testimine kasutades <tt>curl</tt> programmi ning [[KiCompany]] teenust. Analoogselt saab testida ka teisi Krediidiinfo AS SOAP teenuseid.


Autentimiseks saab kasutada sertifikaadi ja selle võtme paari kui ka http basic authentication kasutajat ning parooli. Peale paroolide või sertifikaadi olemasolu, peab Krediidiinfo AS kliendihaldus olema andnud õiguse kasutada [[KiCompany]] teenust.


Vaja läheb kahte või kolme faili ning toimivat SSL toega curl programmi. Keskkond, millest päring tehakse, peab saama ühendada services.krediidiinfo.ee serverisse porti 443, Krediidiinfo AS poolt ei ole IP põhiseid piiranguid sellele teenusele.
Kui järgnevad testid kliendi keskkonnas õnnestuvad, saab väita, et kliendile väljastatud sertifikaat või parool on õige ning õigused [[KiCompany]] kasutamiseks paigas.




Testimaks, ega mõni tulemüür vahele ei sega võib kasutada programmi netcat:
== Võrgu test ==
 
Keskkond, millest päring tehakse, peab saama ühenduda <tt>services.krediidiinfo.ee</tt> serverisse tcp porti <tt>443<tt/>. Krediidiinfo AS poolt ei ole IP põhiseid piiranguid sellele serverile.
 
 
Testimaks, ega mõni tulemüür vahele ei sega võib kasutada programmi <tt>netcat</tt>:
  nc -z -vv services.krediidiinfo.ee 443
  nc -z -vv services.krediidiinfo.ee 443
või mõnes opsüsteemis
Mõnes operatsioonisüsteemis on binaari nimi teine:
  netcat -z -vv services.krediidiinfo.ee 443
  netcat -z -vv services.krediidiinfo.ee 443


Line 13: Line 19:
  Connection to services.krediidiinfo.ee 443 port [tcp/https] succeeded!
  Connection to services.krediidiinfo.ee 443 port [tcp/https] succeeded!


Samuti peaks olema võimalik ühenduda ka porti 80, kust leiab wsdl failid. Kui test ei õnnestu, tuleks pöörduda oma võrgu administraatori poole.
Näited negatiivsetest tulemustest on:
nc: connect to services.krediidiinfo.ee port 443 (tcp) failed: Connection refused
 
nc: connect to services.krediidiinfo.ee port 443 (tcp) failed: Connection timed out
 
Samuti peaks olema võimalik ühenduda sama serveri tcp porti <tt>80</tt>, kust leiab [http://www.w3.org/TR/wsdl wsdl] failid ning sellesama wiki. Kui test ei õnnestu, tuleks pöörduda oma võrguadministraatori poole.
 
 
== SOAP päringu näide ==
 
Esiteks peab teadma, mis teenuse pihta päring teha. Antud näites kasutame [[KiCompany]] teenust, seega päringu URI on <tt>https://services.krediidiinfo.ee/soap.php?name=KiCompany</tt>.
 
Teiseks on vaja SOAP päringut ennast, hoiame seda teksifailis nimega <tt>data.txt</tt>, faili sisu järgnev:
<pre>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <SOAP-ENV:Body>
    <m:findCompanies xmlns:m="urn:KiCompany" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <name xsi:type="xsd:string">kredi</name>
      <count xsi:type="xsd:int">10</count>
    </m:findCompanies>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</pre>
 
Antud päring otsib firmasid, mis algavad stringiga <tt>kredi</tt> ning ei kuva rohkem kui 10 esimest vastust. (Päring on tasuline!)
 
== curl kasutamine ==
 
Testimiseks on mugav kasutada käsurea programmi <tt>curl</tt>. Krediidiinfo AS SOAP teenuse kasutamiseks peab <tt>curl</tt> olema kompileeritud SSL toega ning oskama https protokolli. Veenduge selles käsuga <tt>curl --version</tt>, tulemus:
 
curl 7.19.6 (x86_64-redhat-linux-gnu) libcurl/7.19.6 NSS/3.12.4.1 Beta zlib/1.2.3 libidn/0.6.14 libssh2/0.18
Protocols: tftp ftp telnet dict ldap ldaps http file '''https''' ftps scp sftp
Features: GSS-Negotiate IDN IPv6 Largefile '''SSL''' libz
 
=== curl SOAP päring kasutades autentimiseks HTTP Basic Authentication'it ===
 
Krediidiinfo AS poolt on teile väljastatud kasutajanimi ja parool, siin näites olgu kasutajanimi "1234" ning parool "abc123".
 
curl -d @data.txt -u 1234:abc123 <nowiki>https://services.krediidiinfo.ee/soap.php?name=KiCompany</nowiki>
 
-d määrab päringu. @ märk failinime ees ütleb curl'ile, et tegemist on päringufaili, mitte päringu endaga.
-u määrab kasutaja ja parooli, mis on eraldatud kooloniga.
 


=== curl SOAP päring kasutades autentimiseks sertifikaati ja võtit ===


Päringu tegemiseks on esiteks vaja sertifikaadi faili PEM formaadis, antud näites on failinimeks <tt>cert.pem</tt>. Välja näeb umbes selline:
Päringu tegemiseks on esiteks vaja Krediidiinfo AS poolt väljasatud sertifikaadi faili PEM formaadis, antud näites on failinimeks <tt>cert.pem</tt>. Välja näeb umbes selline:
<pre>
<pre>
-----BEGIN CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEPpuguyIHJPOHuiGIOGilUYGOIGIYFGuyFUYGpioghIPUgpuigÜkGA1UEBhMC
MIIEPpuguyIHJPOHuiGIOGilUYGOIGIYFGuyFUassafDFSDFpuASDaaGA1UEBhMC
RUUxETAPiugUIOuphLBLUpuGIUIGigIPUbhpuiGIPYBuYBUKBLJYHFGuohGDVQQK
RUUxETAPiugUIOuphLBLUpuGIUIGigIPUbhpuiGIPYBuYBUKBLJYHFGuohGDVQQK
Ew9LcmVkaWlkaWluZm8gQVMxCzAJBgNVBAsTAklUMSEwHwYDVQQDExhzZXJ2aWNl
Ew9LcmVkaWlkaWluZm8gQVMxCzAJBgNVBAsTAklUMSEwHwYDVQQDExhzZXJ2aWNl
cy5rcmVkaWlkaWluZm8uZWUxITAfBgkqhkiG9w0BCQEWEml0QGtyZWRpaWRpaW5m
cy5rcmhlkjghGHGuZm8uZWUxITAfBgkqhkiG9w0BCQEWEml0QGtyZWRpaWRpaW5m
by5lZTAeFw0wOTglgkGIOUGpguPIUgvIpiughphPhOPOUhpBHIUGMQswCQYDVQQG
by5lZTAeFw0wOTglgkGIOUGpguPIUgvIpiughphPhOPOUhpBHIUGMQswCQYDVQQG
EwJFRTEQMA4GA1UECBMHRXN0b25pYTEQMA4GA1UEBxMHVGFsbGlubjEYMBYGA1UE
EwJFRTEQMA4GA1UECBMHRXN0b25pYTEQMA4GA1UEBxMHVGFsbGlubjEYMBYGA1UE
Line 31: Line 82:




Teiseks ka sertifikaadi võtme faili PEM formaadis, siin failinimeks <tt>key.pem</tt>. See fail on salajane ning ei tohi kellegagi jagada ning kindlasti emaili teel või muul krüptimata viisil mitte vahendada!
Teiseks sertifikaadi võtme faili PEM formaadis, siin failinimeks <tt>key.pem</tt>. See fail on salajane ning kindlasti emaili teel või muul krüptimata viisil mitte vahendada!


Samas võib selle faili sisu otsa liita <tt>cert.pem</tt> failile <tt>(cat key.pem >> cert.pem)</tt>, siis ei pea võtmefaili <tt>curl</tt>'le eraldi ette näitama. Näeb umbes selline välja, DSA variandi puhul on natuke rohkem erinevusi:
Samas võib selle faili sisu otsa liita <tt>cert.pem</tt> failile <tt>(cat key.pem >> cert.pem)</tt>, siis ei pea võtmefaili <tt>curl</tt>'le eraldi ette näitama. Paljud programmid nõuavad just kokku liidetud varianti. Näeb umbes selline välja, DSA variandi puhul on natuke rohkem erinevusi:
<pre>
<pre>
-----BEGIN RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
Line 50: Line 101:
-----END RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
</pre>
</pre>


Peab teadma ka sertifikaadi võtme parooli, kui võti on krüpteeritud. Antud näites olgu parool <tt>abcd1234</tt>.
Peab teadma ka sertifikaadi võtme parooli, kui võti on krüpteeritud. Antud näites olgu parool <tt>abcd1234</tt>.




Kolmandaks on vaja soap päringut, hoiame seda teksifailis nimega <tt>data.txt</tt>, faili sisu järgnev:
Päringu teostamine:
<pre>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <SOAP-ENV:Body>
    <m:findCompanies xmlns:m="urn:KiCompany" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <name xsi:type="xsd:string">krediidiinfo</name>
      <count xsi:type="xsd:int">10</count>
    </m:findCompanies>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</pre>


Antud päring otsib firmasid, mis algavad stringiga <tt>krediidiinfo</tt> ning ei kuva rohkem kui 10 esimest vastust. (Päring on tasuline!)
curl -d @data.txt -cert $PWD/cert.pem:abcd1234 --key $PWD/key.pem <nowiki>https://services.krediidiinfo.ee/soap.php?name=KiCompany</nowiki>


Päringu teostamine:
<pre>
curl -d @data.txt -cert $PWD/cert.pem:abcd1234 --key $PWD/key.pem https://services.krediidiinfo.ee/soap.php?name=KiCompany
</pre>


  -d võti määrab päringu, @ failinime ees ütleb curl'ile, et tegemist on päringufaili, mitte päringu endaga.
  -d võti määrab päringu, @ failinime ees ütleb curl'ile, et tegemist on päringufaili, mitte päringu endaga.


  --cert võti määrab sertifikaadi faili asukoha. Tuleb kasutada "absolute path"-i. curl ei otsi faili antud kataloogist, seetõttu ka <tt>$PWD</tt> antud näites.
  --cert võti määrab sertifikaadi faili asukoha. Tuleb kasutada "absolute path"-i. curl ei otsi faili antud kataloogist, seetõttu ka <tt>$PWD</tt> antud näites.
  Kui võti on krüpteeritud, saab võtme ette anda nagu näites serdifikaadi failinime taga, eraldades selle failinimest kooloniga. Kui parooli käsureal ei määra, küsitakse seda vajadusel peale curli käivitamist.
  Kui võti on krüpteeritud, saab parooli määrata serdifikaadi failinime taga, eraldades selle failinimest kooloniga.
 
--key määrab võtmefaili asukoha. Kui sertifikaat ja võtmefail on üheks liidetud, siis seda ei ole vaja määrata.
Seetõttu määrataksegi võtme parool --cert juures, mitte siin.
 


--key määrab võtmefaili asukoha. Kui sertifikaat ja võtmefail on üheks liidetud, siis seda võtit vaja ei ole.
== SOAP päringu tulemused ==


=== Õnnestunud päring ===


Õnnestunud tulemus (lisatud reavahetused loetavuse parandamiseks):
Õnnestunud tulemus (lisatud reavahetused loetavuse parandamiseks):
Line 91: Line 131:
<SOAP-ENV:Body>
<SOAP-ENV:Body>
<ns1:findCompaniesResponse>
<ns1:findCompaniesResponse>
<companies SOAP-ENC:arrayType="ns1:CompanyIDData[1]" xsi:type="ns1:CompanyIDDataArray">
<companies SOAP-ENC:arrayType="ns1:CompanyIDData[10]" xsi:type="ns1:CompanyIDDataArray">
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">11517686</regCode>
<name xsi:type="xsd:string">KREDICO OÜ</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">90006012</regCode>
<name xsi:type="xsd:string">KREDIIDI JA EKSPORDI GARANTEERIMISE SITHASUTUS KREDEX</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">10704587</regCode>
<name xsi:type="xsd:string">KREDIIDI JÄRELVALVE OÜ</name><
/item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">11626688</regCode>
<name xsi:type="xsd:string">KREDIIDIBÜROO OÜ</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">11676404</regCode>
<name xsi:type="xsd:string">KREDIIDIGRUPP OÜ</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">11602506</regCode>
<name xsi:type="xsd:string">KREDIIDIHALDUS OÜ</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">10256137</regCode>
<regCode xsi:type="ns1:regCode">10256137</regCode>
<name xsi:type="xsd:string">KREDIIDIINFO AS</name>
<name xsi:type="xsd:string">KREDIIDIINFO AS</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">11693223</regCode>
<name xsi:type="xsd:string">KREDIIDIKAITSE GRUPP OÜ</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">11344317</regCode>
<name xsi:type="xsd:string">KREDIIDIKASSA AS</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">11574371</regCode>
<name xsi:type="xsd:string">KREDIIDIKONTROLL OÜ</name>
</item>
</item>
</companies>
</companies>
</ns1:findCompaniesResponse>
</ns1:findCompaniesResponse>
</SOAP-ENV:Body></SOAP-ENV:Envelope>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</pre>
 
 
=== Vigased päringud ===
 
Viga GET parameetris (KiCompany asemel KiCompan):
curl -d @data.txt -u 1234:abc123 <nowiki>https://services.krediidiinfo.ee/soap.php?name=KiCompan</nowiki>
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>Incorrect HTTP GET parameter 'name' value!</faultstring>
<faultactor></faultactor>
<detail>
<errorcode>-20002</errorcode>
<line_no>157</line_no>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</pre>
 
 
Vigane kasutaja või parool või sertifikaat:
curl -d @data.txt -u 1234:abZZ23 <nowiki>https://services.krediidiinfo.ee/soap.php?name=KiCompany</nowiki>
<pre>
Krediidiinfo veebiteenuse kasutaja autentimine ebaõnnestus! Abi saamiseks võtke ühendust Krediidiinfoga telefonil (+372) 6659600.
</pre>
 
 
Kasutajal ei ole õigust [[KiCompany]] kasutamiseks, pöörduge kliendihalduse poole:
curl -d @data.txt -u 1234:abc123 <nowiki>https://services.krediidiinfo.ee/soap.php?name=KiCompany</nowiki>
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>Access denied for KiCompany!</faultstring>
<faultactor></faultactor>
<detail>
<errorcode>-20003</errorcode>
<line_no>106</line_no></detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</pre>
 
 
SOAP päring puudub:
curl -u 1234:abc123 <nowiki>https://services.krediidiinfo.ee/soap.php?name=KiCompany</nowiki>
<pre>
 
</pre>
(tulemust pole)
 
 
SOAP päringus endas on viga:
curl -d @vigane.txt -u 1234:abc123 <nowiki>https://services.krediidiinfo.ee/soap.php?name=KiCompany</nowiki>
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>Bad Request</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</pre>
või
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:VersionMismatch</faultcode>
<faultstring>Wrong Version</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</pre>
</pre>

Revision as of 14:20, 17 September 2009

Krediidiinfo AS SOAP teenuse testimine kasutades curl programmi ning KiCompany teenust. Analoogselt saab testida ka teisi Krediidiinfo AS SOAP teenuseid.

Autentimiseks saab kasutada sertifikaadi ja selle võtme paari kui ka http basic authentication kasutajat ning parooli. Peale paroolide või sertifikaadi olemasolu, peab Krediidiinfo AS kliendihaldus olema andnud õiguse kasutada KiCompany teenust.

Kui järgnevad testid kliendi keskkonnas õnnestuvad, saab väita, et kliendile väljastatud sertifikaat või parool on õige ning õigused KiCompany kasutamiseks paigas.


Võrgu test

Keskkond, millest päring tehakse, peab saama ühenduda services.krediidiinfo.ee serverisse tcp porti 443. Krediidiinfo AS poolt ei ole IP põhiseid piiranguid sellele serverile.


Testimaks, ega mõni tulemüür vahele ei sega võib kasutada programmi netcat:

nc -z -vv services.krediidiinfo.ee 443

Mõnes operatsioonisüsteemis on binaari nimi teine:

netcat -z -vv services.krediidiinfo.ee 443

Positiivne tulemus on:

Connection to services.krediidiinfo.ee 443 port [tcp/https] succeeded!

Näited negatiivsetest tulemustest on:

nc: connect to services.krediidiinfo.ee port 443 (tcp) failed: Connection refused
nc: connect to services.krediidiinfo.ee port 443 (tcp) failed: Connection timed out

Samuti peaks olema võimalik ühenduda sama serveri tcp porti 80, kust leiab wsdl failid ning sellesama wiki. Kui test ei õnnestu, tuleks pöörduda oma võrguadministraatori poole.


SOAP päringu näide

Esiteks peab teadma, mis teenuse pihta päring teha. Antud näites kasutame KiCompany teenust, seega päringu URI on https://services.krediidiinfo.ee/soap.php?name=KiCompany.

Teiseks on vaja SOAP päringut ennast, hoiame seda teksifailis nimega data.txt, faili sisu järgnev:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <SOAP-ENV:Body>
    <m:findCompanies xmlns:m="urn:KiCompany" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <name xsi:type="xsd:string">kredi</name>
      <count xsi:type="xsd:int">10</count>
    </m:findCompanies>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Antud päring otsib firmasid, mis algavad stringiga kredi ning ei kuva rohkem kui 10 esimest vastust. (Päring on tasuline!)

curl kasutamine

Testimiseks on mugav kasutada käsurea programmi curl. Krediidiinfo AS SOAP teenuse kasutamiseks peab curl olema kompileeritud SSL toega ning oskama https protokolli. Veenduge selles käsuga curl --version, tulemus:

curl 7.19.6 (x86_64-redhat-linux-gnu) libcurl/7.19.6 NSS/3.12.4.1 Beta zlib/1.2.3 libidn/0.6.14 libssh2/0.18
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp
Features: GSS-Negotiate IDN IPv6 Largefile SSL libz

curl SOAP päring kasutades autentimiseks HTTP Basic Authentication'it

Krediidiinfo AS poolt on teile väljastatud kasutajanimi ja parool, siin näites olgu kasutajanimi "1234" ning parool "abc123".

curl -d @data.txt -u 1234:abc123 https://services.krediidiinfo.ee/soap.php?name=KiCompany
-d määrab päringu. @ märk failinime ees ütleb curl'ile, et tegemist on päringufaili, mitte päringu endaga.

-u määrab kasutaja ja parooli, mis on eraldatud kooloniga.


curl SOAP päring kasutades autentimiseks sertifikaati ja võtit

Päringu tegemiseks on esiteks vaja Krediidiinfo AS poolt väljasatud sertifikaadi faili PEM formaadis, antud näites on failinimeks cert.pem. Välja näeb umbes selline:

-----BEGIN CERTIFICATE-----
MIIEPpuguyIHJPOHuiGIOGilUYGOIGIYFGuyFUassafDFSDFpuASDaaGA1UEBhMC
RUUxETAPiugUIOuphLBLUpuGIUIGigIPUbhpuiGIPYBuYBUKBLJYHFGuohGDVQQK
Ew9LcmVkaWlkaWluZm8gQVMxCzAJBgNVBAsTAklUMSEwHwYDVQQDExhzZXJ2aWNl
cy5rcmhlkjghGHGuZm8uZWUxITAfBgkqhkiG9w0BCQEWEml0QGtyZWRpaWRpaW5m
by5lZTAeFw0wOTglgkGIOUGpguPIUgvIpiughphPhOPOUhpBHIUGMQswCQYDVQQG
EwJFRTEQMA4GA1UECBMHRXN0b25pYTEQMA4GA1UEBxMHVGFsbGlubjEYMBYGA1UE
VMtxvrdTVDhtRBDJrdYRBDRVBDTJrbDJBYYJRdYrdjbyRBUYRdBYJRdRRbUJrRYJ
MTCMjfgukfgKGYGOYOUYGOygouYalsuUUGS4OCtgtrmzLw==
-----END CERTIFICATE-----


Teiseks sertifikaadi võtme faili PEM formaadis, siin failinimeks key.pem. See fail on salajane ning kindlasti emaili teel või muul krüptimata viisil mitte vahendada!

Samas võib selle faili sisu otsa liita cert.pem failile (cat key.pem >> cert.pem), siis ei pea võtmefaili curl'le eraldi ette näitama. Paljud programmid nõuavad just kokku liidetud varianti. Näeb umbes selline välja, DSA variandi puhul on natuke rohkem erinevusi:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,C1AA09832249D61D

P85/RJFo2AX638mWtcOTglgkGIOUGpguPIUgvIpiughphPhOPOUhi0I+l5s+JSn5c
jx69XBvi5L+Ytci9RW3zUiWrUDv89IY6DEmwluLX39/gX0TW7U+wos5b7ng/sNLQ
tMyzCtIDACoGb5xHl48c3vY3JUzhrzQWNt2vuFjpGJI1lSOH8h0MdbQEA8iFKIOZ
ng0po3SPW8c5wJtnLuKy8uZWUxITAfBgkqhkiG9w0BCQEWEml08uZWUxITAfBgkq
oHeRz6KkZyXo7vbCbDXSFTuSHiwVwslF7hHbmmiPc4RYxB2EWfTjSUe8Fti9SWPa
iJY0OisiQbePnEigZhfRboVZmQZFPWopgy8uZWUxITAfBgkqhkiG9w0BCQEWEml0
8W1aXSBnNqtla1fmKKId9OkhiAZvavtKug8C9i27R2KR63h6uwq3ktwYtV1YWTHK
Orx8Mf3HIGXpRSJJqjvZUu+xNrM06VcVajY9SJmt7OYXvSo5nKYguwbfGNh/FA7F
Eo1KoKhQeGvWfCQzhEobc/QyegnklbaCUZhePoiL0Jk6Otgsav+2AA==
-----END RSA PRIVATE KEY-----

Peab teadma ka sertifikaadi võtme parooli, kui võti on krüpteeritud. Antud näites olgu parool abcd1234.


Päringu teostamine:

curl -d @data.txt -cert $PWD/cert.pem:abcd1234 --key $PWD/key.pem https://services.krediidiinfo.ee/soap.php?name=KiCompany


-d võti määrab päringu, @ failinime ees ütleb curl'ile, et tegemist on päringufaili, mitte päringu endaga.
--cert võti määrab sertifikaadi faili asukoha. Tuleb kasutada "absolute path"-i. curl ei otsi faili antud kataloogist, seetõttu ka $PWD antud näites.
Kui võti on krüpteeritud, saab parooli määrata serdifikaadi failinime taga, eraldades selle failinimest kooloniga.
--key määrab võtmefaili asukoha. Kui sertifikaat ja võtmefail on üheks liidetud, siis seda ei ole vaja määrata.
Seetõttu määrataksegi võtme parool --cert juures, mitte siin.


SOAP päringu tulemused

Õnnestunud päring

Õnnestunud tulemus (lisatud reavahetused loetavuse parandamiseks):

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:KiCompany" 
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:findCompaniesResponse>
<companies SOAP-ENC:arrayType="ns1:CompanyIDData[10]" xsi:type="ns1:CompanyIDDataArray">
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">11517686</regCode>
<name xsi:type="xsd:string">KREDICO OÜ</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">90006012</regCode>
<name xsi:type="xsd:string">KREDIIDI JA EKSPORDI GARANTEERIMISE SITHASUTUS KREDEX</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">10704587</regCode>
<name xsi:type="xsd:string">KREDIIDI JÄRELVALVE OÜ</name><
/item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">11626688</regCode>
<name xsi:type="xsd:string">KREDIIDIBÜROO OÜ</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">11676404</regCode>
<name xsi:type="xsd:string">KREDIIDIGRUPP OÜ</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">11602506</regCode>
<name xsi:type="xsd:string">KREDIIDIHALDUS OÜ</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">10256137</regCode>
<name xsi:type="xsd:string">KREDIIDIINFO AS</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">11693223</regCode>
<name xsi:type="xsd:string">KREDIIDIKAITSE GRUPP OÜ</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">11344317</regCode>
<name xsi:type="xsd:string">KREDIIDIKASSA AS</name>
</item>
<item xsi:type="ns1:CompanyIDData">
<regCode xsi:type="ns1:regCode">11574371</regCode>
<name xsi:type="xsd:string">KREDIIDIKONTROLL OÜ</name>
</item>
</companies>
</ns1:findCompaniesResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Vigased päringud

Viga GET parameetris (KiCompany asemel KiCompan):

curl -d @data.txt -u 1234:abc123 https://services.krediidiinfo.ee/soap.php?name=KiCompan
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>Incorrect HTTP GET parameter 'name' value!</faultstring>
<faultactor></faultactor>
<detail>
<errorcode>-20002</errorcode>
<line_no>157</line_no>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Vigane kasutaja või parool või sertifikaat:

curl -d @data.txt -u 1234:abZZ23 https://services.krediidiinfo.ee/soap.php?name=KiCompany
Krediidiinfo veebiteenuse kasutaja autentimine ebaõnnestus! Abi saamiseks võtke ühendust Krediidiinfoga telefonil (+372) 6659600.


Kasutajal ei ole õigust KiCompany kasutamiseks, pöörduge kliendihalduse poole:

curl -d @data.txt -u 1234:abc123 https://services.krediidiinfo.ee/soap.php?name=KiCompany
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>Access denied for KiCompany!</faultstring>
<faultactor></faultactor>
<detail>
<errorcode>-20003</errorcode>
<line_no>106</line_no></detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


SOAP päring puudub:

curl -u 1234:abc123 https://services.krediidiinfo.ee/soap.php?name=KiCompany

(tulemust pole)


SOAP päringus endas on viga:

curl -d @vigane.txt -u 1234:abc123 https://services.krediidiinfo.ee/soap.php?name=KiCompany
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>Bad Request</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

või

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:VersionMismatch</faultcode>
<faultstring>Wrong Version</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>