Tomcat 6.0.35 - 如何在管理器应用程序上绕过新的CSRF保护?

时间:2013-09-17 16:50:51

标签: solr tomcat6 csrf

我有一个命令行脚本(实际上是一个git post-checkout hook),它通过执行cURL来重新加载我的Solr应用程序:

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>

Configuring Manager Application access in tomcat的文档提到了一些新的经理角色,但是我的错误特别提到单个“经理”角色目前仍然存在(我尝试了其他角色但没有成功)。

1 个答案:

答案 0 :(得分:0)

(当我写这个问题时,我找到了答案。)我不需要转到 HTML 应用程序,而是需要转到“纯文本界面”

即。而不是

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>