2012-02-06 4 views
1

Я использую Heroku для развертывания моей игры! рамочное приложение. У меня есть форма, которая использует стандартную структуруИграть! Framework на Heroku: validation.keep() не работает над HTTPS

public static void showForm() { 
    render(); 
} 

public static void handleForm(@Required param, @Required otherParam, etc) { 
    if (validation.hasErrors()) { 
     validation.keep(); 
     showForm(); 
    } else { 
     //process form parameters 
    } 
} 

Это прекрасно работает на:

  • DEV машина работает HTTP в localhost:9000
  • Heroku работает HTTP на www.myapp.com
  • DEV машина работает HTTPS на localhost:9443

Однако для форм, которые делают это на Heroku по HTTPS по адресу secure.myapp.com с использованием SSL на основе имени хоста, проверки не отображаются. Я думаю, проблема в том, что validation.keep() не работает.

Если validation.keep() делает печенье, и проблема имеет что-то делать с разницей между www.myapp.com и secure.myapp.com, то я мог бы иметь более глубокую проблему, потому что:

  • У меня уже есть application.defaultCookieDomain=.myapp.com, согласно this question.
  • Я думаю, что как GET и POST происходит через HTTPS, так что я думаю, что они имеют один и тот же домен, в любом случае ...
    • получающий является определенно над HTTPS
    • При данных формы обрабатываются , его результат определенно показан по HTTPS
    • Я думаю, возможно, что POST происходит через HTTP (и, следовательно, www.* вместо secure.*, но я не уверен, как проверить).

Кто-нибудь есть какие-либо предположения относительно того, что происходит не так?

ответ

1

В настоящее время существует несовместимость в поддержке ssl (x-forwarded-proto) для игры на heroku, которая заставляет все запросы считаться небезопасными.

https://play.lighthouseapp.com/projects/57987/tickets/1385-requests-are-never-secure-on-heroku-when-using-ssl

Так что, возможно, это связано с печеньем ваш браузер отправка обратно?

Смежные вопросы