tomcat7-maven-plugin tomcatManager status code:403, ReasonPhrase:Forbbiden

19,934

Solution 1

I had same problem. But I found following solution of this problem:

pom.xml

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.0</version>
    <configuration>
      <url>http://localhost:8080/manager/text</url>
      <server>localhost</server>
      <path>/${project.build.finalName}</path>
    </configuration>
</plugin>

~/.m2/settings.xml

<servers>
<server>
   <id>localhost</id>
   <username>admin</username>
   <password>s3cret</password>
</server>

tomcat-users.xml

<role rolename="manager-script"/>
<user username="admin" password="s3cret" roles="manager-script"/>

After changing tomcat-users.xml do not forget to restart the server. Also do not assign the manager-gui role with the manager-script to the same user.

Solution 2

Enough to do like this

pom.xml

<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>2.0</version>
  <configuration>
    <path>/mywebapp</path>
    <update>true</update>
    <url>http://localhost:8080/manager/text</url>
    <username>tomcat</username>
    <password>tomcat</password>
  </configuration>
</plugin> 

tomcat-users.xml

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

From http://tomcat.apache.org/maven-plugin-2.0/index.html

Use http://localhost:8080/manager/text rather than the default tomcat6 url.

Solution 3

This error will also appear if the same WAR with the same name has already been deployed to tomcat.

Solution 4

Url is not correct use:

<tomcat-url>http://localhost:8080/manager/html</tomcat-url>
Share:
19,934

Related videos on Youtube

Fran b
Author by

Fran b

Updated on September 14, 2022

Comments

  • Fran b
    Fran b almost 2 years

    I am trying to do mvn clean package tomcat7:deploy but always I get this error: tomcatManager status code:403, ReasonPhrase:Forbbiden

    My configurations are the next:

    ~/.m2/settings.xml

    <servers>
      <server>
        <id>localhost</id>
        <username>tomcat</username>
        <password>s3cret</password>
      </server>
    </servers>
    

    pom.xml

      <profiles>
        <profile>
            <id>tomcat-localhost</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <tomcat-server>localhost</tomcat-server>
                <tomcat-url>http://localhost:8080/manager/html</tomcat-url>
            </properties>
        </profile>
      </profiles>
    
      <build>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.0</version>
            <configuration>
                <server>${tomcat-server}</server>
                <url>${tomcat-url}</url>
            </configuration>
          </plugin>
        </plugins>
      </build>
    

    tomcat-users.xml

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

    What is my mistake? Because I don't see it.

    Complete message error:

    [INFO] --- tomcat7-maven-plugin:2.0:deploy (default-cli) @ WebApp ---
    [INFO] Deploying war to http://localhost:8080/Baskeitor  
    Uploading: http://localhost:8080/manager/html/deploy?path=%2FWebApp
    Uploaded: http://localhost:8080/manager/html/deploy?path=%2FWebApp (7985 KB at 50215.2 KB/sec)
    
    [INFO] tomcatManager status code:403, ReasonPhrase:Prohibido
    [INFO] <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    [INFO] <html>
    [INFO]  <head>
    [INFO]   <title>403 Access Denied</title>
    [INFO]   <style type="text/css">
    [INFO]     <!--
    [INFO]     BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;font-size:12px;}
    [INFO]     H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;}
    [INFO]     PRE, TT {border: 1px dotted #525D76}
    [INFO]     A {color : black;}A.name {color : black;}
    [INFO]     -->
    [INFO]   </style>
    [INFO]  </head>
    [INFO]  <body>
    [INFO]    <h1>403 Access Denied</h1>
    [INFO]    <p>
    [INFO]     You are not authorized to view this page.
    [INFO]    </p>
    [INFO]    <p>
    [INFO]     If you have already configured the Manager application to allow access and
    [INFO]     you have used your browsers back button, used a saved book-mark or similar
    [INFO]     then you may have triggered the cross-site request forgery (CSRF) protection
    [INFO]     that has been enabled for the HTML interface of the Manager application. You
    [INFO]     will need to reset this protection by returning to the
    [INFO]     <a href="/manager/html">main Manager page</a>. Once you
    [INFO]     return to this page, you will be able to continue using the Manager
    [INFO]     appliction's HTML interface normally. If you continue to see this access
    [INFO]     denied message, check that you have the necessary permissions to access this
    [INFO]     application.
    [INFO]    </p>
    [INFO]    <p>
    [INFO]     If you have not changed
    [INFO]     any configuration files, please examine the file
    [INFO]     <tt>conf/tomcat-users.xml</tt> in your installation. That
    [INFO]     file must contain the credentials to let you use this webapp.
    [INFO]    </p>
    [INFO]    <p>
    [INFO]     For example, to add the <tt>manager-gui</tt> role to a user named
    [INFO]     <tt>tomcat</tt> with a password of <tt>s3cret</tt>, add the following to the
    [INFO]     config file listed above.
    [INFO]    </p>
    [INFO] <pre>
    [INFO] &lt;role rolename="manager-gui"/&gt;
    [INFO] &lt;user username="tomcat" password="s3cret" roles="manager-gui"/&gt;
    [INFO] </pre>
    [INFO]    <p>
    [INFO]     Note that for Tomcat 7 onwards, the roles required to use the manager
    [INFO]     application were changed from the single <tt>manager</tt> role to the
    [INFO]     following four roles. You will need to assign the role(s) required for
    [INFO]     the functionality you wish to access.
    [INFO]    </p>
    [INFO]     <ul>
    [INFO]       <li><tt>manager-gui</tt> - allows access to the HTML GUI and the status
    [INFO]           pages</li>
    [INFO]       <li><tt>manager-script</tt> - allows access to the text interface and the
    [INFO]           status pages</li>
    [INFO]       <li><tt>manager-jmx</tt> - allows access to the JMX proxy and the status
    [INFO]           pages</li>
    [INFO]       <li><tt>manager-status</tt> - allows access to the status pages only</li>
    [INFO]     </ul>
    [INFO]    <p>
    [INFO]     The HTML interface is protected against CSRF but the text and JMX interfaces
    [INFO]     are not. To maintain the CSRF protection:
    [INFO]    </p>
    [INFO]    <ul>
    [INFO]     <li>Users with the <tt>manager-gui</tt> role should not be granted either
    [INFO]         the <tt>manager-script</tt> or <tt>manager-jmx</tt> roles.</li>
    [INFO]     <li>If the text or jmx interfaces are accessed through a browser (e.g. for
    [INFO]         testing since these interfaces are intended for tools not humans) then
    [INFO]         the browser must be closed afterwards to terminate the session.</li>
    [INFO]    </ul>
    [INFO]    <p>
    [INFO]     For more information - please see the
    [INFO]     <a href="/docs/manager-howto.html">Manager App HOW-TO</a>.
    [INFO]    </p>
    [INFO]  </body>
    [INFO] </html>
    

    I have tomcat 7.0.32 and I restart it always I change some configuration about users or anything that need load again.

  • mpontes
    mpontes over 11 years
    Thanks, we had the same problem, the trick here was to use the /text endpoint with the manager-script role.
  • Rusfearuth
    Rusfearuth over 11 years
    It works for me! 1. add user with role 'manager-script' only to tomcat-users.xml; 2. add "<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-n‌​op</artifactId><vers‌​ion>${slf4j.version}‌​</version></dependen‌​cy>" for fix slf4j.org/codes.html#StaticLoggerBinder; 3. add "<plugin><groupId>org.apache.tomcat.maven</groupId><artifact‌​Id>tomcat7-maven-plu‌​gin</artifactId><ver‌​sion>2.1</version><c‌​onfiguration><tomcat‌​-url>localhost:8080/‌​manager/html</…{proj‌​ect.build.finalName}‌​</path></configurati‌​on></plugin>"
  • Brady Zhu
    Brady Zhu almost 11 years
    I did it totally follow your instructions, but it encountered error: tomcatManager status code:401, ReasonPhrase:Unauthorized. I make sure the username/password of tomcat I configured is correct, what do I do?
  • MichaC
    MichaC over 10 years
    please those kind of short answers as comments. Or first read the faq of SO before you post
  • Edgar Torres
    Edgar Torres over 10 years
    Didn't have the reputation to do so, felt like offering help was more important than post etiquette considering the helpful nature of this site.
  • mosaad
    mosaad over 10 years
    if anyone has same problem to solve it ur settings.xml file should have <settings> tag as root
  • Philip Rego
    Philip Rego about 5 years
    Uploading: localhost:8081/manager/text/deploy?path=ROOT&update=true Uploading: localhost:8081/manager/text/deploy?path=ROOT&update=true [INFO] BUILD FAILURE [ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:redeploy (default-cli) on project gs-serving-web-content: Cannot invoke Tomcat manager: Connection reset -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:redeploy (default-cli) on project g: Cannot invoke Tomcat manager
  • Philip Rego
    Philip Rego about 5 years
    it doesn't deploy to the path you specify