Sample code for 30+ languages & platforms
PowerBuilder

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 PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Json
oleobject loo_Crypt
oleobject loo_SsLogin
oleobject loo_SsPassword
oleobject loo_Rest
integer li_BTls
integer li_Port
integer li_BAutoReconnect
string ls_ResponseJson

li_Success = 0

// 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=="
// }

loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
if li_rc < 0 then
    destroy loo_Json
    MessageBox("Error","Connecting to COM object failed")
    return
end if
loo_Json.LoadFile("qa_data/passwords/http.json")

loo_Crypt = create oleobject
li_rc = loo_Crypt.ConnectToNewObject("Chilkat.Crypt2")

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

loo_SsLogin = create oleobject
li_rc = loo_SsLogin.ConnectToNewObject("Chilkat.SecureString")

loo_SsPassword = create oleobject
li_rc = loo_SsPassword.ConnectToNewObject("Chilkat.SecureString")

// Decrypt to the secure string.  (the strings will still held in memory encrypted, but are now encrypted using
// a randomly generated session key.)
loo_Crypt.DecryptSecureENC(loo_Json.StringOf("http_login"),loo_SsLogin)
loo_Crypt.DecryptSecureENC(loo_Json.StringOf("http_password"),loo_SsPassword)

loo_Rest = create oleobject
li_rc = loo_Rest.ConnectToNewObject("Chilkat.Rest")

// Connect to a REST server.
li_BTls = 1
li_Port = 443
li_BAutoReconnect = 1
li_Success = loo_Rest.Connect("chilkatsoft.com",li_Port,li_BTls,li_BAutoReconnect)

// Cause the "Authorization: Basic ..." header to be added to HTTP requests
loo_Rest.SetAuthBasicSecure(loo_SsLogin,loo_SsPassword)

ls_ResponseJson = loo_Rest.FullRequestNoBody("GET","/helloWorld.html")
if loo_Rest.LastMethodSuccess <> 1 then
    Write-Debug loo_Rest.LastErrorText
    destroy loo_Json
    destroy loo_Crypt
    destroy loo_SsLogin
    destroy loo_SsPassword
    destroy loo_Rest
    return
end if

// Show the LastRequestHeader that was sent.
Write-Debug loo_Rest.LastRequestHeader

// The LastRequestHeader looks like this:

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


destroy loo_Json
destroy loo_Crypt
destroy loo_SsLogin
destroy loo_SsPassword
destroy loo_Rest