Ontem a tarde resolvi largar os bugfixes e implementar uma nova funcao em uma aplicacao de um cliente. Os requisitos da historia diziam que a aplicacao (atualmente em producao) deveria suportar o uso de varios dominios transparentemente. Depois de uma modificacao rapida no vhost do apache para adicionar um dominio adicional como alias, percebi que tudo parecia funcionar corretamente - paginas perfeitamente renderizadas, rotas funcionando. O problema comecou quando eu tentei logar com um usuario - logo apos o redirect inicial, eu era redirecionado novamente para a pagina de login.
Acabei passando umas duas debugando a aplicacao ate’ achar a causa. Problemas como esse normalmente sao problemas de sessao, e como no dominio original tudo funcionava perfeitamente, resolvi pesquisar sobre o suporte a sessoes em multiplos dominios. Obviamente, mais gente ja’ teve o problema.
Vou documentar aqui exemplos da solucao para diversas versoes do rails (1.x, 2.0.x, 2.1 e 2.3) garantindo que o codigo esteja acessivel caso o post original saia do ar. Aplicar o monkey patch e’ simples: Basta adicionar o snippet relacionado a versao do rails que voce usa diretamente no environment.rb e reiniciar o processo.
Rails 1.x
Rails 2.0.x
Rails 2.1.x (e 2.2.x)
Rails 2.3
March 20, 2009, 6:10pm
