Я установил сервер меркуриона через SSL. В конфигурационном файле apache я настроил аутентификацию с использованием базы данных mysql.mercurial ssl access allow pull BUT требуется аутентификация для push
Я хотел бы, чтобы все могли вытащить из репозитория без учетных данных, но ограничить право доступа к аутентифицированным пользователям. То, как это делается сейчас, либо все аутентифицируются как для тяги, так и для толчка, или никто не является.
Моя конфигурация Apache это:
<Location /hg/repo>
AuthType Basic
AuthName "Repository Access"
AuthBasicAuthoritative Off
AuthUserFile /dev/null
AuthMySQL On
AuthMySQL_Authoritative On
AuthMySQL_Host localhost
AuthMySQL_DB repo
AuthMySQL_User repo
AuthMySQL_Password_Table users_auth_external
AuthMySQL_Group_Table users_auth_external
AuthMySQL_Username_Field username
AuthMySQL_Password_Field passwd
AuthMySQL_Group_Field groups
AuthMySQL_Encryption_Types SHA1Sum
Require group pink-image
<LimitExcept GET>
Require valid-user
</LimitExcept>
</Location>
также требует рт.ст. аутентификации для Ssl тянуть, независимо от переключателя LimitExcept.
Есть ли способ ограничить аутентификацию только для нажатия в хранилище?
Простой доступ к http не будет достаточным, потому что, если кто-то разработчик, она проверяет код через https.
Доступ к SSH невозможен, поскольку некоторые из разработчиков имеют запрещенный брандмауэром порт ssh.
Одним из решений было бы, если hg будет помнить учетные данные https.
Благодарим вас за то, что вы прочитали вопрос.
Это правильный способ сделать это. В качестве дополнительной заметки в предложение LimitExcept необходимо инкапсулировать только опцию 'Require' (' Require group', 'Require valid-user' и т. Д.). Это обеспечивает дополнительную детализацию в отношении контроля доступа (то есть некоторые пользователи/группы читают, другие получают чтение/запись) –