Rails ssl_allowed e ssl_required

Resolvi fazer esse post para ajudar pessoas que tenham o mesmo problema que tivemos hoje.

No sistema que estamos desenvolvendo, há uma integração com o Pagamento Digital (PD), onde nosso sistema recebe um POST deste para atualizar informações de um pedido.

Ao colocar o sistema no ambiente de integração (RAILS_ENV=production), este passou a utilizar SSL e começamos a ter problemas no processamento do POST de retorno do PD. Ao testar, víamos no log do servidor (log/production.log) que estava sendo feito um redirecionamento (302) para a versão não SSL (http) desta URL.

Para ficar mais claro, o PD fazia post para nossa url https://lalala.com/return mas internamente a aplicação redirecionava para http://lalala.com/return, perdendo todos os parâmetros que haviam no POST original.

Depois de quebrar a cabeça, descobrimos que nosso sistema estava utilizando o plugin ssl_requirement. Esse plugin oferece um modo de configurar actions que permitem funcionar via SSl (ssl_allowed) e actions que devem funcionar somente via SSL (ssl_required).

No nosso caso, bastou definir no controller que a action permitia o uso de SSL com a diretiva ssl_allowed :nome_da_action

Mais informações sobre este plugin em http://github.com/rails/ssl_requirement

Por hoje é isso!

Um comentário:

  1. Parabéns Perrella, ótima iniciativa, espero ver o post daqueles macetes (bash, rails, etc) que você usa no dia-a-dia e que ajudam bastante.

    ResponderExcluir