It looks like the implementation doesn’t exactly match the comment — should
probably open a ticket. But, this works:
#!/usr/bin/env python3
import hashlib
import base64
import time
import requests as req
password = 'password'
millis = int(round(time.time() * 1000))
param = f'{millis}:{password}'
hash_pass = hashlib.sha1(param.encode('utf-8')).digest()
str_pass = base64.b64encode(hash_pass).decode('utf-8')
headers = { 'X-Signature' : f'{millis}:{str_pass}' }
resp = req.get('http://localhost:8080/ignite?cmd=version', headers=headers)
print (resp.text)
Basically, you pass in a X-Signature header with a string in the format “x:y”.
X = the time in ms
Y = base64 ( sha1 ( “x:secretkey" ) )
Yes, you include the time and use the time as part of the hash. For this (and
other reasons) I’m not sure that this is a good mechanism. If you want to
secure it, use TLS, add authentication.
Regards,
Stephen
> On 7 Sep 2021, at 12:44, [email protected] wrote:
>
> Hi Team,
>
> Can someone please suggest here. There is no example how to call a
> rest url with secret key as per below documentation.
>
> setSecretKey(String)
> Defines secret key used for client authentication. When provided, client
> request must contain HTTP header X-Signature with the string "[1]:[2]", where
> [1] is timestamp in milliseconds and [2] is the Base64 encoded SHA1 hash of
> the secret key.
>
>
> Thanks
> Satyajit
>
>
> Restricted - External
> From: Mandal, Satyajit: IT (PUN)
> Sent: Friday, September 3, 2021 3:41 PM
> To: 'user' <[email protected]>
> Subject: Calling Ignite Rest endpoint using secret key
>
> Hi Team,
>
> Can someone provide example how we can invoke Ignite Rest Endpoint
> using encoded secret key in header. There is not much example .
> Any sample will help which is working.
>
>
> https://ignite.apache.org/docs/latest/restapi
> <https://ignite.apache.org/docs/latest/restapi>
>
>
>
>
>
>
> <property name="connectorConfiguration">
> <bean
> class="org.apache.ignite.configuration.ConnectorConfiguration">
> <property name="SecretKey"
> value="these.signatures"/>
> </bean>
> </property>
>
>
>
>
> setSecretKey(String)
> Defines secret key used for client authentication. When provided, client
> request must contain HTTP header X-Signature with the string "[1]:[2]", where
> [1] is timestamp in milliseconds and [2] is the Base64 encoded SHA1 hash of
> the secret key.
> Thanks
>
> Satyajit
>
> _________________________________________________________________________________________________________________________________________________________________________________________________________________________________
> This message is for information purposes only, it is not a recommendation,
> advice, offer or solicitation to buy or sell a product or service nor an
> official confirmation of any transaction. It is directed at persons who are
> professionals and is not intended for retail customer use. Intended for
> recipient only. This message is subject to the terms at:
> www.barclays.com/emaildisclaimer <http://www.barclays.com/emaildisclaimer>.
>
> For important disclosures, please see:
> www.barclays.com/salesandtradingdisclaimer
> <http://www.barclays.com/salesandtradingdisclaimer> regarding market
> commentary from Barclays Sales and/or Trading, who are active market
> participants;
> https://www.investmentbank.barclays.com/disclosures/barclays-global-markets-disclosures.html
>
> <https://www.investmentbank.barclays.com/disclosures/barclays-global-markets-disclosures.html>
> regarding our standard terms for the Investment Bank of Barclays where we
> trade with you in principal-to-principal wholesale markets transactions; and
> in respect of Barclays Research, including disclosures relating to specific
> issuers, please see http://publicresearch.barclays.com
> <http://publicresearch.barclays.com/>.
> _________________________________________________________________________________________________________________________________________________________________________________________________________________________________
> If you are incorporated or operating in Australia, please see
> https://www.home.barclays/disclosures/importantapacdisclosures.html
> <https://www.home.barclays/disclosures/importantapacdisclosures.html>for
> important disclosure.
> _________________________________________________________________________________________________________________________________________________________________________________________________________________________________
> How we use personal information see our privacy notice
> https://www.investmentbank.barclays.com/disclosures/personalinformationuse.html
>
> <https://www.investmentbank.barclays.com/disclosures/personalinformationuse.html>
>
> _________________________________________________________________________________________________________________________________________________________________________________________________________________________________
>