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 访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章