Tomcat 7.0.42上的403访问被拒绝

9

当我尝试访问Tomcat Manager应用程序时,出现了403拒绝访问错误(tomcat 7.0.42)

以下是我在tomcat-user.xml文件中的设置。 我已经尝试过多次更改角色,但没有起作用。

注意:我使用NetBeans 7.3.1启动/停止Tomcat。

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users>
 <role rolename="manager-script"/>
<user username="admin" password="admin" roles="manager-script" />
</tomcat-users>

我认为角色应该是manager-ui(假设您正在通过浏览器访问管理器应用程序)。 - kosa
4个回答

39

移除manager-script,添加"manager-gui, manager-status"。

要访问HTML界面,您需要拥有manager-gui角色,但不能拥有manager-script或manager-jmx角色。

<tomcat-users>
  <role rolename="manager-script"/>
  <role rolename="manager-gui"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <user username="tomcat" password="tomcat" roles="manager-gui,manager-status"/>
</tomcat-users>

关于来自http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html的角色信息:

  • manager-gui — 访问HTML界面。
  • manager-status — 仅访问“服务器状态”页面。
  • manager-script — 访问友好的纯文本界面(在文档中有描述)以及“服务器状态”页面。
  • manager-jmx — 访问JMX代理界面和“服务器状态”页面。

你可以在同一个用户中拥有所有角色。来自http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html:如果您使用 Web 浏览器使用具有 manager-script 或 manager-jmx 角色的用户访问 Manager 应用程序(例如,用于测试纯文本或 JMX 接口),那么您必须在终止会话之后关闭浏览器的所有窗口...建议不要将 manager-script 或 manager-jmx 角色授予具有 manager-gui 角色的用户。 - jbarrameda
对我来说(使用Eclipse)没有起作用。Tomcat让我很生气 >:( - jpfreire
“manager-status” 角色在提供的示例中是无用的,因为它被其余角色中的任何一个所隐含(参见应用程序描述符)。 - Piotr P. Karwasz

1

虽然答案已经是正确的答案,但我认为可能有人会对“manager-script”的使用感到困惑。

“manager-script”用于访问Tomcat Manager API而无需使用Web页面。

例如,下面的命令是请求undeploy功能,而不是在Tomcat Manager Web应用程序上单击undeploy按钮。

curl http://localhost:8080/manager/text/undeploy?path=/app_name

被接受的答案实际上并没有将“tomcat”用户添加到“manager-script”角色中。 - Piotr P. Karwasz

0

我在Ubuntu上安装了Tomcat7,并发现如果您进行以下配置:

<user username="admin1" password="admin1" roles="manager-gui,manager-jmx,manager-script,manager-status,admin-gui,admin-script"/>
<user username="admin2" password="admin2" roles="admin-gui,admin-script,manager-gui,manager-jmx,manager-script,manager-status"/>

admin1 可以正常工作,但 admin2 将无法访问。 看起来角色的顺序很重要。


-3
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="manager-gui,manager-status"/>

将以下内容添加到位于conf文件夹内的tomcat-users.xml文件的标签之前。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接