转自:https://blog.csdn.net/wangfei0904306/article/details/58586606
有时候需要进入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 , 填入如下内容:
- <Context privileged="true" antiResourceLocking="false"
- docBase="${catalina.home}/webapps/manager">
- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
- </Context>
2. 添加用户:
$tomcathome/conf/tomcat-users.xml 中的 <tomcat-users></tomcat-users> 标签内添加如下代码:
- <role rolename="manager-gui"/>
- <role rolename="manager-script"/>
- <role rolename="manager-jmx"/>
- <role rolename="manager-status"/>
- <role rolename="admin-gui"/>
- <role rolename="admin-script"/>
- <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>
- <user username="deploy" password="deploy" roles="manager-script"/>