I have a login screen that I force to be ssl, so like this: https://www.foobar.com/login then after they login, they get moved to the homepage: https://www.foobar.com/dashbaord
However, I want to move people off of SSL once logged in (to save CPU), so just after checking that they are in fact logged in on https://www.foobar.com/dashbaord I move them to http://www.foobar.com/dashbaord
Well this always seems to wipe out the session variables, because when the page runs again, it confirms they are logged in (as all pages do) and session appears not to exist, so it moves them to the login screen.
Oddness/findings:
- List item
- The second login always works, and happily gets me to http://www.foobar.com/dashbaord
- It successfully creates a cookie the first login
- If I login twice, then logout, and login again, I don't need two logins (I seem to have traced this to the fact that the cookie exists). If I delete the cookie, I'm back to two logins.
- After the second login, I can move from non-ssl from ssl and the session persists.
- On the first login, the move to the non-ssl site wipes out the session entirely, manually moving back to the ssl site still forces me to login again.
- The second login using the exact same mechanism as the first, over ssl
What I tried:
- Playing with Cake's settings for security.level and session.checkagent - nothing
- Having cake store the sessions in db (as opposed to file system) - nothing
- Testing in FF, IE, Chrome on an XP machine.
So I feel like this is something related to the cookie being created but not being read.
Environment: 1. Debian 2. Apache 2 3. Mysql 4 4. PHP 5 5. CakePHP 6. Sessions are being saved PHP default, as files