[Gambas-user] Request.Header and Base64Decode for a CGI

Benoit Minisini gambas at ...1...
Wed Jan 14 22:23:43 CET 2009


On mercredi 14 janvier 2009, Toni wrote:
> Hi,
> I'm programming a CGI using Gambas2 and I want to implement "basic http
> authentication" into it, but I have two problems to get it done: I Don't
> know how to get Request HTTP Headers (I couldn't find something like
> "Request.Header[]"). The other problem is that I haven't been able to
> find a decoding Base64 function in Gambas. Is there one?
>
> Here is a sample code of how I wanted to implement it:
>
>
> PRIVATE SUB Authorize()
>   DIM Validated AS Boolean = FALSE
>   DIM User AS String = "user"
>   DIM SecretPassword AS String = "secret"
>
>   IF Request.Header["Authorization"] <> "" THEN '<-----------
> Request.Header IS AN INVETION
>        IF base64_decode(Request.Header["Authorization"]) == (User & "+"
> & SecretPassword) THEN Validated = TRUE '<--------- base64_decode IS AN
> INVETION TOO
>   ENDIF
>
>   IF (NOT Validated) THEN
>     Response.AddHeader("WWW-Authenticate", "Basic realm=\"AgendaXML-WEB\"")
>     Response.AddHeader("status", "401 Unauthorized")
>     Response.Begin
>     Response.End
>     QUIT
>   END IF
> END
>
>
> Regards,
> Toni
>
> PS: I guess I could use the web server authentication mechanisms but I
> just wondered whether I could control it from within my CGI
>

You can't control HTTP authentification from the CGI script. The server must 
handle it, and you will get the result in the CGI["AUTH_TYPE"] and 
CGI["REMOTE_USER"] environmental variables.

Regards,

-- 
Benoit Minisini




More information about the User mailing list