1

SSLを介してmercurialサーバーをセットアップしました。Apache 構成ファイルで、mysql データベースを使用して認証を設定しました。

誰でも資格情報なしでリポジトリからプルできるようにしたいのですが、プッシュ権は認証されたユーザーに制限してください。現在の方法では、プルとプッシュの両方で全員が認証されるか、誰も認証されません。

私の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>

hg は、LimitExcept スイッチに関係なく、ssl プルの認証も必要とします。

認証をリポジトリへのプッシュのみに制限する方法はありますか?

誰かが開発者である場合、https を介してコードをチェックアウトするため、単純な http アクセスでは不十分です。

一部の開発者は ssh ポートをファイアウォールで禁止しているため、SSH アクセスはできません。

解決策の 1 つは、hg が https 資格情報を記憶している場合です。

質問を読んでいただきありがとうございます。

4

3 に答える 3

3

認証は、例外ルールにラップする必要があります。

<Location /hg/repo>
   <LimitExcept GET>
        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>
</Location>
于 2012-05-15T13:19:25.190 に答える
2
One of the solutions would be if hg would remember the https credentials.

プッシュとプルの資格情報を記憶できます。構成ファイルの1つ(ユーザーの構成またはリポジトリのクローンのいずれか)に詳細を追加してもかまわない場合は、のauthセクションを参照してください。hg help confighgrc

これは、パスワードを設定ファイルに入れることを意味しますが、パスワードをより安全に保存する代わりに MercurialKeyringExtensionを使用できます。

于 2012-05-15T12:33:59.043 に答える
0

自動資格情報では不十分であることが判明しました。リポジトリは、Web インターフェイスからアクセスできません。ただし、同じ構成ファイルがブラウザに認証ダイアログをポップアップ表示し、Web インターフェイスが使用できなくなります。

于 2012-05-15T12:43:10.390 に答える