[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