5

我正在尝试使用访问 tomcat 管理器

http://localhost:8080/manager

但是我输入密码后总是被拒绝进入。我收到以下消息:

403 访问被拒绝

您无权查看此页面。

如果您已将 Manager 应用程序配置为允许访问,并且您使用了浏览器的后退按钮、使用了保存的书签或类似功能,那么您可能触发了已为 HTML 启用的跨站点请求伪造 (CSRF) 保护Manager 应用程序的界面。您需要通过返回主管理器页面来重置此保护。返回此页面后,您将能够继续正常使用 Manager 应用程序的 HTML 界面。如果您继续看到此访问被拒绝消息,请检查您是否具有访问此应用程序的必要权限。

如果您没有更改任何配置文件,请检查安装中的文件 conf/tomcat-users.xml。该文件必须包含允许您使用此 web 应用程序的凭据。

例如,要将 manager-gui 角色添加到名为 tomcat 且密码为 s3cret 的用户,请将以下内容添加到上面列出的配置文件中。

请注意,对于 Tomcat 7 及更高版本,使用管理器应用程序所需的角色已从单个管理器角色更改为以下四个角色。您将需要分配您希望访问的功能所需的角色。

manager-gui - 允许访问 HTML GUI 和状态页面 manager-script - 允许访问文本界面和状态页面 manager-jmx - 允许访问 JMX 代理和状态页面 manager-status - 允许访问仅限状态页面 HTML 接口受 CSRF 保护,但文本和 JMX 接口不受保护。维护 CSRF 保护:

不应授予具有 manager-gui 角色的用户 manager-script 或 manager-jmx 角色。如果文本或 jmx 接口是通过浏览器访问的(例如,用于测试,因为这些接口是为工具而非人类设计的),那么之后必须关闭浏览器以终止会话。有关更多信息 - 请参阅 Manager App HOW-TO。

这是我的 tomcat-users.xml :

<tomcat-users> 
<role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager-gui"/>
  <user username="tomcat" password="s3cret" roles="admin-gui,standard,manager-gui"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>

我正在通过 intellij idea 12 Ultimate 运行 tomcat 7。我正在使用山狮操作系统。谢谢你。

4

7 回答 7

16

我编辑了两个文件:server.xml & tomcat-users.xml

第 1 步:我在server.xml中添加了这一行,此行必须在Engine上下文下添加,与图片相同:

<Realm className="org.apache.catalina.realm.MemoryRealm" />

在这里你可以看到图片:

在此处输入图像描述

第 2步:然后我编辑了tomcat-users.xml并添加了以下行:

<!--
  NOTE:  The sample user and role entries below are wrapped in a 
  comment and thus are ignored when reading this file. Do not forget
  to remove <!.. ..> that surrounds them.
-->

  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager"/>
  <role rolename="manager-script"/>
  <role rolename="manager-gui"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
  <user username="admin" password="tomcat" roles="manager-gui,manager-script "/> 

</tomcat-users>

注意:我建议您复制并粘贴我的文本并将其替换为您的

重新启动tomcat,您就可以开始了!

于 2014-08-01T14:49:59.027 回答
3

对于角色,您既需要特权访问权限,manager-gui又需要manager-script, 。

例子:

    <!-- you need both roles, manager-gui & manager-script for user-->
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <user username="tomcat" 
      password="blabla" roles="manager-gui,manager-script "/> 
</tomcat-users>
于 2014-02-19T19:05:54.640 回答
1

我通过添加 CATALINA_HOME 变量并在以下字段中为其赋予值 /Library/Tomcat 来解决它:

运行 --> 编辑配置 --> Tomcat 服务器 --> Tomcat 7.0 --> '启动/连接' 选项卡 --> 环境变量

于 2013-01-31T15:06:40.300 回答
0

我有同样的问题。我通过将配置文件的所有者更改为 tomcat 来解决它,由于某种原因它们归 root 所有。

cd /etc/tomcat
chown tomcat:group *
#restart tomcat service
于 2016-06-21T16:49:34.523 回答
0

它实际上帮助了我。您应该尝试使用更好(不可猜测)的用户名,而不是“管理员”

<role rolename="manager-gui"/>
<user username="TomcatAdmin" password="secpa55wd" roles="manager-gui"/>
于 2020-04-25T14:16:44.713 回答
0

我的tomcat也遇到了同样的问题。我意识到tomcat下的一些文件夹,如libconf没有可执行(x)权限。当我授予文件夹可执行权限时,问题就解决了。

于 2017-01-11T07:01:23.090 回答
0

假设您在您的 tomcat 文件夹中为 $TOMCAT_HOME

步骤1:

在 $TOMCAT_HOME/conf/ tomcat-users.xml添加以下行

<user username="admin" password="password" roles="manager-gui,admin-gui"/>

内:

   <tomcat-users.......

   </tomcat-users>

所以它看起来像:

<tomcat-users.......
      <user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>

第2步:

并在 $TOMCAT_HOME/webapps/manager/META-INF/ context.xml:删除以下标签:

<Valve className=......

所以它将是:

<Context antiResourceLocking="false" privileged="true" >
  <!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
-->
</Context>

最后:

重启你的tomcat

您可以在Apache Tomcat 8 Manager App上找到更多详细信息

于 2017-08-06T16:51:23.373 回答