3

指定されたユーザーへのアクセスを制限するためにApachehttpdを介した基本認証を使用するように構成されたSVNリポジトリがあります。同じサーバー上で実行されている継続的インテグレーションサーバー(およびその他の読み取り専用サービス)をサポートするために、ローカルホストからの匿名の読み取りアクセスを許可したいと思います。

いくつかの調査(つまりグーグル)を行った後、私は次のApache構成を試すことを思いつきました:

<Location /svn>
   DAV svn
   SVNParentPath /var/svn

   AuthType Basic
   AuthName "SVN"
   AuthBasicProvider external
   AuthExternal pwauth

   #Only allow specified users to login to SVN
   require user UID1
   require user UID2
   require user UID3

   #Allow anonymous reads from localhost
   <LimitExcept GET PROPFIND OPTIONS REPORT>
      Order allow,deny
      Allow from 127.0.0.1
   </LimitExcept>
</Location>

ローカルサーバーから匿名でチェックアウトしようとすると、パスワードの入力を求められます(この場合はrootユーザーの場合)。

私が間違っている可能性があること、またはこれを可能にするために物事を適切に構成する方法についての考えや提案はありますか?

匿名の読み取りアクセスを構成する私の最初の試みは、このページの情報に基づいています。

4

6 に答える 6

1
  Satisfy Any
  require valid-user

私のためにうまく働きます(チェックアウトできます、コミットできません)

編集

私のブロック、関連性のある部分と関連性のない部分

<Location /svn/>
  DAV svn

  SVNListParentPath on
  SVNParentPath "D:/Repositories/"
  SVNIndexXSLT "/svnindex.xsl"

  SVNPathAuthz short_circuit

  SVNCacheTextDeltas off
  SVNCacheFullTexts off

  AuthName "VisualSVN Server"
  AuthType Basic
  AuthBasicProvider file
  AuthUserFile "D:/Repositories/htpasswd"
  AuthzSVNAccessFile "D:/Repositories/authz"

  Satisfy Any
  require valid-user

  # Add Expires/Cache-Control header explictly
  ExpiresActive on
  ExpiresDefault access
</Location>

スキップした場合、リクエストSatisfy Anyを認証する必要があります

于 2012-02-13T16:04:47.297 に答える
1

RequireデフォルトでRequireAnyである複数の行がある場合、1つのルールのみを渡す必要があります。だからあなたはこのようにそれを行うことができます

   Require user UID1 UID2 UID3

   #Allow anonymous reads from localhost
   <LimitExcept GET PROPFIND OPTIONS REPORT>
     Require ip 127.0.0.1
   </LimitExcept>
于 2021-01-12T11:26:10.940 に答える
0

Satisfy Anyブロックの一番下にいると思います。これにより、とディレクティブのいずれかLocationが一致した場合にアクセスが許可されます(デフォルトではすべてが一致する必要があります)。AllowRequire

ドキュメントはこちらです。

于 2012-02-13T15:39:07.243 に答える
0

これが機能するとは思わない。「requireuser」ディレクティブがロケーションブロック全体に対してアクティブになっている。

私が最初に考えたのは、「require user」を制限ブロック内に配置することでした。これは、データを要求しているIPに関係なく、制限ブロックがアクティブであるため機能しません。

svn-localhostという2番目のディレクトリを作成し、制限ブロックのみが存在する状態で、svnルートを2回目にマップします。

于 2012-02-13T15:44:27.883 に答える
0

ローカルホストからの匿名の読み取りアクセスのみを許可し、リモートシステムからの読み取りと書き込みの両方に認証を必要とするソリューションを見つけることができませんでした。

最終的に、認証が必要なアプリケーションのユーザー名/パスワードを作成しました。

これは理想的な解決策ではありませんでした...しかし、それはうまくいくはずです。

于 2012-02-22T18:28:52.857 に答える
0

私でさえ匿名アクセスの問題を解決することができませんでした。

しかし、新しい読み取り専用ユーザーを作成する代わりに、ファイルベースのURLを使用して(redmineを使用した)統合を機能させることができました。したがって、http url(認証が必要)を参照する代わりに、file:///を使用しています。これには認証は必要ありません。

于 2014-09-16T07:52:48.003 に答える