2012-05-22 1 views
0

Я настроил репозиторий Mercurial на своем веб-сервере, используя Apache и hgweb. Я понимаю, как создавать новые учетные записи пользователей, используя htdigest, но я хотел бы знать, как разрешить удаленным пользователям изменять свой пароль. В идеале, я бы создал свою учетную запись с временным паролем, а затем отправлю им электронное письмо, в котором они хотели бы его изменить. Пользователи должны иметь возможность изменять свой собственный пароль, а не другие пользователи (иначе я бы просто предоставил им учетную запись оболочки).Mercurial: Как разрешить удаленным пользователям изменять свой пароль?

Можно ли это сделать? Если да, то как?

+0

Вот почему аутентификация через ключи лучше :-) – zerkms

+0

@zerkms: Ссылка пожалуйста. Разве это не требует от меня проверки подлинности SSH вместо проверки подлинности HTTP? Да, это более гибко, но намного сложнее настроить. В качестве альтернативы, не могли ли пользователи запускать htdigest на их стороне и отправить мне итоговый дайджест? – Gili

+0

да, тогда вам нужна авторизация ssh. Конфигурация тривиальна с «mercurial-server» – zerkms

ответ

2

Htdigest - это Apache user configuration file, и в принципе управление ими выходит за рамки самого Mercurial.

Чтобы предоставить форму смены пароля, вам придется написать собственный скрипт, который будет обрабатывать файл htdigest. Это не должно быть слишком сложно. Поскольку я understand it каждая строка этого файла имеет следующий формат:

user:realm:MD5(user:realm:pass) 

Некоторые примеры кода для генерации MD5 хэш часть этого формата можно найти здесь:

http://httpd.apache.org/docs/trunk/misc/password_encryptions.html#digest

Вероятно, вы должны быть в состоянии для Google для некоторых готовых скриптов, которые это делают, хотя я, к сожалению, не смог их быстро найти. Я думаю, что также возможно настроить Apache для подключения к уже существующей базе данных, в которой хранятся пароли в этом формате, и обрабатывать управление паролем через это.

В качестве альтернативы, я бы рекомендовал рассмотреть серверные пакеты хранилища, такие как RhodeCode или SCM-Manager, которые имеют встроенную поддержку этих задач управления.

+0

Род-код и SCM-менеджер выглядят отлично. Что лучше и почему? :) – Gili

+0

Не пробовал ни ... Я думаю, что RhodeCode был там первым, и он выглядит красивее :). –

+1

Я просто пробовал RhodeCode. Его главное преимущество (помимо взглядов) заключается в том, что каждый пользователь может управлять своим собственным паролем (я не верю, что SCM-Manager предоставляет это). Это, как говорится, было полной болью для установки под Windows (сборка зависит от Visual Studio 2008, нет службы Windows из коробки и т. Д.). – Gili

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

  • Нет связанных вопросов^_^