Tomcat 7.0.42 上的 403 访问被拒绝

Posted

技术标签:

【中文标题】Tomcat 7.0.42 上的 403 访问被拒绝【英文标题】:403 access denied on tomcat 7.0.42 【发布时间】:2013-10-19 23:25:51 【问题描述】:

我在访问 Tomcat Manager 应用程序时遇到错误403 access denied on 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(假设您正在从浏览器访问 manager 应用程序_。 【参考方案1】:

删除管理器脚本并添加“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:如果您使用具有 manager-script 或 manager-jmx 角色的用户使用 Web 浏览器访问 Manager 应用程序(例如,用于测试纯文本或 JMX 接口),您必须关闭所有窗口之后浏览器终止会话.... 建议永远不要将 manager-script 或 manager-jmx 角色授予具有 manager-gui 角色的用户。 对我来说(使用 Eclipse)不起作用。 tomcat 惹我生气>:( manager-status 角色在提供的示例中是无用的,因为它被任何其余角色暗示(参见application descriptor)。【参考方案2】:

虽然answer已经是正确答案,但我想也许有人会对“manager-script”的用法感到困惑。

“manager-script”用于在不使用网页的情况下访问 Tomcat Manager API。

例如,以下命令用于请求取消部署功能,而不是单击 Tomcat Manager Web 应用程序上的取消部署按钮。

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

【讨论】:

接受的答案实际上并未将tomcat 用户添加到manager-script 角色中,【参考方案3】:

我在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 没有访问权限。 看来角色的顺序很重要。

【讨论】:

【参考方案4】:
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="manager-gui,manager-status"/>

将这些添加到tomcat-users.xml的末尾,在位于conf文件夹内的标记之前。

【讨论】:

以上是关于Tomcat 7.0.42 上的 403 访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat 访问Manager APP报403错误

远程访问Tomcat 403 Access Denied

访问tomcat下的web项目出现403错误

Tomcat 访问manager 403

Tomcat 访问manager app报403 解决方案(虚拟机可以正常使用,外面访问报错)

如何修复 Tomcat HTTP 状态 403:访问请求的资源已被拒绝?