Sample code for 30+ languages & platforms
Lianja

REST Basic Auth with Secure Strings

Demonstrates how to do REST Basic authentication using secure strings.

This example requires Chilkat v9.5.0.71 or greater.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

// Imagine we've previously saved our encrypted login and password within a JSON config file
// that contains this:

// {
//   "http_login": "mCrOmA7mBA7Au9RuJGb9hw==",
//   "http_password": "jJtiI9TgErTTpqBz9JtHBw=="
// }

loJson = createobject("CkJsonObject")
loJson.LoadFile("qa_data/passwords/http.json")

loCrypt = createobject("CkCrypt2")

// These are the encryption settings we previously used to encrypt the credentials within the JSON config file.
loCrypt.CryptAlgorithm = "aes"
loCrypt.CipherMode = "cbc"
loCrypt.KeyLength = 128
loCrypt.SetEncodedKey("000102030405060708090A0B0C0D0E0F","hex")
loCrypt.SetEncodedIV("000102030405060708090A0B0C0D0E0F","hex")
loCrypt.EncodingMode = "base64"

loSsLogin = createobject("CkSecureString")
loSsPassword = createobject("CkSecureString")

// Decrypt to the secure string.  (the strings will still held in memory encrypted, but are now encrypted using
// a randomly generated session key.)
loCrypt.DecryptSecureENC(loJson.StringOf("http_login"),loSsLogin)
loCrypt.DecryptSecureENC(loJson.StringOf("http_password"),loSsPassword)

loRest = createobject("CkRest")

// Connect to a REST server.
llBTls = .T.
lnPort = 443
llBAutoReconnect = .T.
llSuccess = loRest.Connect("chilkatsoft.com",lnPort,llBTls,llBAutoReconnect)

// Cause the "Authorization: Basic ..." header to be added to HTTP requests
loRest.SetAuthBasicSecure(loSsLogin,loSsPassword)

lcResponseJson = loRest.FullRequestNoBody("GET","/helloWorld.html")
if (loRest.LastMethodSuccess <> .T.) then
    ? loRest.LastErrorText
    release loJson
    release loCrypt
    release loSsLogin
    release loSsPassword
    release loRest
    return
endif

// Show the LastRequestHeader that was sent.
? loRest.LastRequestHeader

// The LastRequestHeader looks like this:

// Host: chilkatsoft.com
// Authorization: Basic bXlIdHRwTG9naW46bXlIdHRwUGFzc3dvcmQ=


release loJson
release loCrypt
release loSsLogin
release loSsPassword
release loRest