Disregarding cookies in 302 requests with CGI.rb under mod_ruby

  • Thread starter David Heinemeier Hansson
  • Start date
D

David Heinemeier Hansson

It seems that cookies set with CGI#header are thrown away when using
mod_ruby. This piece of code:

header({
"Status" => "302 Moved",
"location" => "http://37signals.misto/tests/file_upload.rbx",
"cookie" => [
CGI::Cookie::new(
"name" => "session_key",
"value" => "123"
) ]
})

Produces this under normal Ruby CGI:

HTTP/1.1 302 Moved
Date: Wed, 29 Oct 2003 17:01:03 GMT
Server: Apache/1.3.28 (Darwin) mod_ruby/1.0.7 Ruby/1.8.0 PHP/4.3.2
Set-Cookie: session_key=123; path=/tests/
location: http://37signals.misto/tests/file_upload.rbx
Content-Type: text/html

And this under mod_ruby (1.0.7):

HTTP/1.1 302 Moved
Date: Wed, 29 Oct 2003 17:01:06 GMT
Server: Apache/1.3.28 (Darwin) mod_ruby/1.0.7 Ruby/1.8.0 PHP/4.3.2
Location: http://37signals.misto/tests/file_upload.rbx
Content-Type: text/html; charset=iso-8859-1

Aside from the missing Set-Cookie directive, the charset is also being
set under mod_ruby. Is it possible to alter this behaviour? I don't
care much about the charset, but I would indeed like to be able to send
cookies with 302-responses.

The objective for doing this is that I'd like the following use-case
implemented:

1. Unauthenticated user (UU) attempts to access page A
2. UU is directed to a login screen
3. UU logs in and is redirected to page A

Hence, I need to record the URL of page A and store that result in a
cookie while I forward the user to the login screen. This could also be
done with "login_screen?return_to=url", but I'd rather not do it like
that.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,153
Members
46,701
Latest member
XavierQ83

Latest Threads

Top