Tomcat8.5 不能進入Manager App

有時候需要進入Tomcat管理界面(比如Jenkins用Tomcat熱部署的時候),但點擊如下圖中的Manager App 出現錯誤


錯誤提示:

You are not authorized to view this page.

By default the Host Manager is only accessible from a browser running on the same machine as Tomcat. If you wish to modify this restriction, you'll need to edit the Host Manager's context.xml file.

If you have already configured the Host Manager application to allow access and you have used your browsers back button, used a saved book-mark or similar then you may have triggered the cross-site request forgery (CSRF) protection that has been enabled for the HTML interface of the Host Manager application. You will need to reset this protection by returning to the main Host Manager page. Once you return to this page, you will be able to continue using the Host Manager application's HTML interface normally. If you continue to see this access denied message, check that you have the necessary permissions to access this application.

If you have not changed any configuration files, please examine the file conf/tomcat-users.xml in your installation. That file must contain the credentials to let you use this webapp.

For example, to add the admin-gui role to a user named tomcat with a password of s3cret, add the following to the config file listed above.

<role rolename="admin-gui"/>
<user username="tomcat" password="s3cret" roles="admin-gui"/>

Note that for Tomcat 7 onwards, the roles required to use the host manager application were changed from the single admin role to the following two roles. You will need to assign the role(s) required for the functionality you wish to access.

  • admin-gui - allows access to the HTML GUI
  • admin-script - allows access to the text interface

The HTML interface is protected against CSRF but the text interface is not. To maintain the CSRF protection:

  • Users with the admin-gui role should not be granted the admin-script role.
  • If the text interface is accessed through a browser (e.g. for testing since this interface is intended for tools not humans) then the browser must be closed afterwards to terminate the session.
解決需要兩步:

1. 添加 Context

    http://stackoverflow.com/questions/36703856/access-tomcat-manager-app-from-different-host

    在 $tomcathome/conf/Catalina/localhost/下創建 manager.xml , 填入如下內容:


[html] view plain copy
  1. <Context privileged="true" antiResourceLocking="false"   
  2.          docBase="${catalina.home}/webapps/manager">  
  3.     <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />  
  4. </Context>  

2.  添加用戶:

    $tomcathome/conf/tomcat-users.xml 中的 <tomcat-users></tomcat-users> 標籤內添加如下代碼:

[html] view plain copy
  1. <role rolename="manager-gui"/>  
  2.   <role rolename="manager-script"/>  
  3.     <role rolename="manager-jmx"/>  
  4.       <role rolename="manager-status"/>  
  5.         <role rolename="admin-gui"/>  
  6.           <role rolename="admin-script"/>  
  7.             <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>  
  8.   
  9. <user username="deploy" password="deploy" roles="manager-script"/>  

還需步驟如下: 
vi /usr/local/tomcat/apache-tomcat-8.5.9/webapps/manager/META-INF/context.xml

這裏寫圖片描述

備註:本人開始加上自己本機的ip地址,仍然訪問不了。看到有帖子說明可以將 
Valve className=”org.apache.catalina.valves.RemoteAddrValve” 
allow=”127.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1” /> 註解掉。


####################################################################

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章