Иметь абсолютный URL, созданный с использованием https, но не требующий https

У меня есть веб-приложение, которое находится на балансировщике нагрузки. Соединения с балансировщиком нагрузки безопасны с помощью https, и мой балансировщик нагрузки связывается с моим веб-сервером с помощью http. Это достаточно безопасно для моего случая использования, поскольку веб-сервер может принимать трафик только от подсистемы балансировки нагрузки, которая уже аутентифицирована.

Моя проблема в том, что у меня есть несколько форм, использующих FOSMessageBundle, которые создают маршруты, используя текущую схему. Веб-сервер считает, что входящие соединения используют http, поэтому маршруты создаются с помощью http. Теперь это становится угрозой безопасности, и я не могу отправить форму в большинстве браузеров из-за несовместимых схем.

Вот строка из файла ветки, которую мне нужно переопределить и исправить:

 {% set formAction %}{{ url('fos_message_thread_undelete', {'threadId': thread.id}) }}{% endset %}

Если мне потребуется https (используя метод из Symfony Docs) для указанного выше маршрута fos сгенерированный маршрут правильный, но при отправке происходит цикл перенаправления, поскольку веб-сервер не может принять https, а мой балансировщик нагрузки автоматически устанавливает и перенаправляет любой http на https.

Я использовал быстрое и грязное решение, чтобы вручную ввести https в моем маршруте и использовать функцию пути для создания остальной части URL, но это не правильное кодирование. Я проверил это, и форма отправляется с https на балансировщик нагрузки, который затем отправляет его на веб-сервер с http.

Есть ли способ создать URL-адрес в Symfony, который всегда генерируется с помощью https, но не требует https?

Я просматривал документы и нашел URL, относящиеся к схеме это, кажется, правильное направление, но документация подразумевает его для доступа к внешним файлам, а не для маршрутов форм. Кто-нибудь знает, уместно ли использовать это в моей ситуации:

{{ url('fos_message_thread_undelete', {'threadId': thread.id}, true) }}

Вот некоторые другие вопросы, которые несколько похожи, но ни один не дал ответа на то, что я пытаюсь выполнить:

«Require_channel: https» вызывает ошибку 310, слишком много перенаправлений

Принудительный HTTPS с Symfony

Я использую Apache 2.4 и Symfony 2.6.

0

Решение

Простой ответ на мой вопрос о создании https в ветке, но не требующий https для отправки формы, заключается в использовании URL-адресов, относящихся к схеме:

{{schema_parameter}}{{ url('fos_message_thread_undelete', {'threadId': thread.id}, true) }}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]