Dear Daniel!
Thank you for your help and guidance!
Meanwhile, it turned out that authentication is required to access the SOAP server. The client header of each message you need to put the data necessary for authentication.
It uses Digest authentication method: Password_digest = Base64 (SHA - 1 (Nonce + Created + Password))
Example of SOAP request header to send authentication
The following example is to identify the "root" user name contains "System" password.
<wsse:Security xmlns:wsse="
http://docs.oasis-open.org/wss/2004/01/ ... xt-1.0.xsd">
<wsu:Timestamp
xmlns:wsu="
http://docs.oasis-open.org/wss/2004/01/ ... 00401-wss-
wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-1">
<wsu:Created>2010-08-10T10:52:42Z</wsu:Created>
<wsu:Expires>2010-08-10T10:57:42Z</wsu:Expires>
</wsu:Timestamp>
<wsse:UsernameToken>
<wsse:Username>root</wsse:Username>
<wsse:Password Type="
http://docs.oasis-open.org/wss/2004/01/oasis-200401-
wss-username-token-profile-1.0#PasswordDigest">
EVpXS/7yc/vDo+ZyIg+cc0fWdMA=</wsse:Password>
<wsse:Nonce>tKUH8ab3Rokm4t6IAlgcdg9yaEw=</wsse:Nonce>
<wsse:Created>2010-08-10T10:52:42Z</wsse:Created>
</wsse:UsernameToken>
</wsse:Security>
In a bash script to generate the sample header authentication for testing:
#!/bin/sh
dd if=/dev/urandom of=/tmp/nonce_binary count=20 bs=1 &> /dev/null
CURDATE=‘date -u +"%FT%TZ"‘
EXPDATE=‘date -u -d "1 hour" +%FT%TZ‘
NONCE=‘cat /tmp/nonce_binary | base64‘
cat /tmp/nonce_binary > /tmp/gen
echo -n $CURDATE >> /tmp/gen
echo -n $2>> /tmp/gen
DIGEST=‘
openssl dgst -binary -sha1 /tmp/gen | base64‘
echo -n "<SOAP-ENV:Header>"
echo -n "<wsse:Security xmlns:wsse=\"
http://docs.oasis-open.org/wss/2004/01/
oasis-200401-wss-wssecurity-secext-1.0.xsd\" SOAP-ENV:mustUnderstand=\"1\">"
echo -n "<wsu:Timestamp xmlns:wsu=\"
http://docs.oasis-open.org/wss/2004/01/
oasis-200401-wss-wssecurity-utility-1.0.xsd\" wsu:Id=\"Timestamp-1\">
<wsu:Created>$CURDATE</wsu:Created><wsu:Expires>$EXPDATE</wsu:Expires>
</wsu:Timestamp>"
echo -n "<wsse:UsernameToken><wsse:Username>$1</wsse:Username>"
echo -n "<wsse:Password Type=\"
http://docs.oasis-open.org/wss/2004/01/
oasis-200401-wss-username-token-profile-1.0#PasswordDigest\">$DIGEST</wsse:Password>"
echo -n "<wsse:Nonce>$NONCE</wsse:Nonce><wsse:Created>$CURDATE</wsse:Created>"
echo "</wsse:UsernameToken></wsse:Security></SOAP-ENV:Header>"
rm -rf /tmp/gen /tmp/nonce_binary
This example script uses the OpenSSL encryption. I use the Harbour hbssl library or need to download other dll's?
Best regards,
Zoltan