当Tomcat运行IntelliJ Idea Ultimate 12时,我无法访问Tomcat 7管理器

时间:2013-01-31 13:42:08

标签: tomcat intellij-idea tomcat7

我正在尝试使用

访问tomcat管理器
http://localhost:8080/manager

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

  

403拒绝访问

     

您无权查看此页面。

     

如果您已将Manager应用程序配置为允许访问   并且您已经使用了浏览器后退按钮,使用了已保存的书签或   类似的话你可能已经触发了跨站点请求伪造   (CSRF)保护已启用HTML接口   经理申请。您需要重置此保护   返回主Manager页面。一旦你回到这个页面,你   将能够继续使用Manager应用程序的HTML界面   一般。如果您继续看到此拒绝访问消息,请检查   您拥有访问此应用程序所需的权限。

     

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

     

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

     

请注意,对于Tomcat 7   从那时起,使用经理应用程序所需的角色是   从单个经理角色更改为以下四个角色。您   将需要分配您的功能所需的角色   希望访问。

     

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

     

具有manager-gui角色的用户不应被授予   manager-script或manager-jmx角色。如果是text或jmx接口   通过浏览器访问(例如,用于测试,因为这些接口   用于工具而不是人类)然后必须关闭浏览器   之后终止会话。有关更多信息 - 请参阅   经理应用程序如何。

这是我的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终极运行tomcat 7。 我正在使用Mountain Lion操作系统。 谢谢。

7 个答案:

答案 0 :(得分:16)

我编辑了两个文件: server.xml &amp;的 Tomcat的users.xml中

第1步:我将此行添加到 server.xml ,此行必须添加到与图片相同的引擎上下文中:

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

在这里你可以看到图片:

enter image description here

第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,你准备好了!

答案 1 :(得分:3)

对于某个角色,您需要同时拥有权限manager-guimanager-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>

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

cd /etc/tomcat
chown tomcat:group *
#restart tomcat service

答案 4 :(得分:0)

我遇到了与tomcat相同的问题。我意识到tomcat下的某些文件夹如 lib conf 没有可执行(x)权限。当我向文件夹提供可执行权限时,问题就解决了。

答案 5 :(得分:0)

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

第1步:

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

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

with in:

   <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

找到更多详情

答案 6 :(得分:0)

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

<role rolename="manager-gui"/>
<user username="TomcatAdmin" password="secpa55wd" roles="manager-gui"/>