0

cURL を実行して Solr アプリケーションをリロードするコマンド ライン スクリプト (実際には git post-checkout フック) があります。

http://localhost:8080/manager/html/reload?path=/solr

Ubuntu 13.04 にアップグレードしたため、アップグレード前は機能していた場所で失敗します。

問題の原因は、私の新しいバージョンの Tomcat (6.0.35) に新しい CSRF 保護があり、403 Access Denied.

問題を解決し、CSRF 保護をバイパスするにはどうすればよいですか?


より詳しい情報:

私の/etc/tomcat6/tomcat-users.xmlファイル:

<?xml version='1.0' encoding='utf-8'?>
  <role rolename="manager"/>
  <user username="tomcat" password="secret" roles="manager"/>
</tomcat-users>

Tomcat でマネージャー アプリケーション アクセスを構成するためのドキュメントには、いくつかの新しいマネージャー ロールが記載されていますが、私のエラーは、現時点では単一の「マネージャー」ロールがまだ存在することを明確に示しています (とにかく他のロールを試してみましたが成功しませんでした)。

4

1 に答える 1

0

(質問を書いているときに、答えが見つかりました。) HTMLアプリケーションに cURL する代わりに、「プレーン テキストインターフェイス」に cURL する必要がありました。

つまり、代わりに

http://localhost:8080/manager/html/reload?path=/solr

使用する:

http://localhost:8080/manager/reload?path=/solr

それが判明:

HTML インターフェースは CSRF から保護されていますが、テキストおよび JMX インターフェースは保護されていません。

これは、「manager-script」と呼ばれる新しい役割に適合します。アプリが将来動作することを確認するために、/etc/tomcat6/tomcat-users.xmlファイルを変更しました。

<?xml version='1.0' encoding='utf-8'?>
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <user username="tomcat" password="secret" roles="manager-gui,manager-script"/>
</tomcat-users>
于 2013-09-17T16:50:51.080 に答える