Назад | Перейти на главную страницу

Реализация анонимного опроса, но подталкивания подтвержденного пользователя через HTTPS

В принципе, как мне это сделать в Mercurial Repository?

В настоящее время я настроил Location в Apache так, чтобы требовать SSL, использовать базовую аутентификацию и требовать действительного пользователя. Это немного, поскольку я хочу разрешить анонимное извлечение, просто требуется базовая аутентификация для толкателей - прямо сейчас пользователь / пароль требуются для простого просмотра репозитория в веб-браузере. Я бы хотел постоянно требовать SSL и не хочу размещать один и тот же репозиторий дважды (чтобы иметь другое Location для pull-only и другое для проверенного push).

Чес Мартин ведет хороший блог с подробностями о том, как он настраивает Mercurial в соответствии с вашими запросами.

<LimitExcept GET>
  require valid-user
</LimitExcept>

Этот фрагмент из конфигурации Apache является частью того, что необходимо для разрешения анонимного извлечения (или просмотра, если опубликовано через hgweb), но по-прежнему требует пропуска для push.

То, что вы ищете, может быть LimitExcept директива Apache. Что-то вроде:

<LimitExcept GET>
  Require valid-user
</LimitExcept>

Так что пользователь / пропуск потребуется для чего-либо еще, кроме запроса GET. Но я не знаю Mercurial и не знаю как hg push сделано. Если это запрос POST, он будет в порядке, но может быть, что POST также потребуется для извлечения.

Вы усложняете свою проблему, требуя SSL для анонимного запроса, и я понятия не имею, к чему вы стремитесь, делая это. Если кто-то может извлекать данные без аутентификации, любой может увидеть все данные, просто спросив, что делает обнюхивание проводов полностью избыточным, поэтому нет смысла их шифровать.

Я настоятельно рекомендую выбрать более простой путь: разместить анонимный дистрибутив на http и сохранить https для пушей.