2012-01-24 14 views
1

私はスタンドアロンのJackRabbitリポジトリを持っています。 これは、いくつかのクレデンシャル(書き込みアクセス権)を使用してRMIを介して生成されます。 HTTPによる読み取りアクセスは、すべての資格情報に対して有効になっています(デフォルト)。Jackrabbitログインプロンプトをスキップ

ユースケースの1つは、JSPページ上のリポジトリ項目(ファイル)へのURLリンクを生成することで、ブラウザでクリックしてダウンロードすることができます。リンクが生成されますが、リンクをクリックすると403エラーが発生します。そのリンクが別のブラウザタブにコピーペーストされると、ログイン/パスワードを尋ねてファイルを表示(またはダウンロード)します。

私はこのように、URLにいくつかの(おそらく空)ログイン/パスワードを渡すことについての考えていた:

http://user:[email protected]:port/blahblah 

をしかし、それは(RFCによってHTTPのために許可されていない、それが動作するものの、時には、常にではない、とのそれは私に合っていません)

質問は、HTTPアクセスのログイン/パスワードのプロンプトを削除する方法ですか?任意の資格情報が読み取りアクセスを許可するため、冗長なようです。 repository.xml、security.xmlなどで設定できますか?

答えて

2

これは、Jackrabbit webapp内のWEB-INF/web.xml配備記述子で設定できます。

<init-param> 
    <param-name>missing-auth-mapping</param-name> 
    <param-value>anonymous:anonymous</param-value> 
    <description> 
     Defines how a missing authorization header should be handled. 
     1) If this init-param is missing, a 401 response is generated. 
      This is suitable for clients (eg. webdav clients) for which 
      sending a proper authorization header is not possible if the 
      server never sent a 401. 
     2) If this init-param is present with an empty value, 
      null-credentials are returned, thus forcing an null login 
      on the repository. 
     3) If this init-param is present with the value 'guestcredentials' 
      java.jcr.GuestCredentials are used to login to the repository. 
     4) If this init-param has a 'user:password' value, the respective 
      simple credentials are generated. 
    </description> 
</init-param> 

あなたの問題を解決する必要があります。このパラメータを有効にする:SimpleWebdavServletため<servlet>構成エントリは、デフォルトではコメントアウトされますmissing-auth-mappingオプションが含まれています。

+0

アドバイスをいただきありがとうございます。これはスタンドアローンのJackrabbit jarでコメントアウトされていませんでした。とにかく... 説明したすべての種類の値(空、guestcredentials、1:1、匿名:anonymous、...)にparam-valueを設定しましたが、依然としてlogin/passwordを要求し続けます。このパラメータのように、ログイン/パスワードが指定されていない場合に何を使用するかを指定しますが、尋ねることは禁じられていません。 – manuna

+1

@manunaこれはあなたには遅すぎるが、他の人の利益のために知っている:私もこれによって捕まえられた - このパラメータを受け入れる2つのサーブレットがあり、パラメータがデフォルトで宣言されているものは、 JCRWebdavServer(JcrRemotingServlet)サーブレットを使用しますが、 'Webdav'(SimpleWebdavServlet)サーブレットの下でパラメータを宣言したいとします。 –

関連する問題