web-dev-qa-db-de.com

tomcat7-maven-plugin tomcatManager-Statuscode: 403, ReasonPhrase: Forbbiden

Ich versuche, mvn clean package Tomcat7:deploy zu tun, aber ich erhalte immer diese Fehlermeldung: tomcatManager status code:403, ReasonPhrase:Forbbiden

Meine Konfigurationen sind die nächsten:

~/.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"/> 

Was ist mein Fehler? Weil ich es nicht sehe.

Vollständiger Nachrichtenfehler:

[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>

Ich habe Tomcat 7.0.32 und starte es immer wieder neu. Ich ändere eine Konfiguration über Benutzer oder irgendetwas, das erneut geladen werden muss.

24
Fran b

Ich hatte das gleiche Problem. Ich habe jedoch folgende Lösung für dieses Problem gefunden:

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"/>

Vergessen Sie nicht, nach dem Ändern von Tomcat-users.xml den Server neu zu starten. Weisen Sie die manager-gui -Rolle auch nicht mit dem manager-script demselben Benutzer zu.

63
Dzmitry

Genug, um so etwas zu tun 

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>

Von http://Tomcat.Apache.org/maven-plugin-2.0/index.html

Use http://localhost:8080/manager/text rather than the default Tomcat6 url.
5
Stas Yak

Dieser Fehler wird auch angezeigt, wenn die gleiche WAR mit demselben Namen bereits in Tomcat implementiert wurde.

3
Edgar Torres

URL ist nicht richtig, verwenden Sie:

<Tomcat-url>http://localhost:8080/manager/html</Tomcat-url>
1
Olivier Lamy

Wollte dies als Kommentar hinzufügen, habe aber nicht genügend Reputationswert, um dies zu tun.

Wenn Sie dies als Antwort hinzufügen, kann dies für jemanden hilfreich sein. Ich habe beim Versuch der Bereitstellung auf Tomcat7 mit Eclipse die gleichen Fehler erhalten und funktionierte immer noch nicht, nachdem ich die obigen Lösungen ausprobiert hatte. Schließlich habe ich versucht, Eclipse außerhalb der Kommandozeile (cmd) auszuführen, und es funktionierte wie ein Zauber. Natürlich musste ich maven auf meinem Rechner installieren und dann die Benutzervariable M2_Home und die Pfadvariable auf M2_HOME/bin setzen.

Vielen Dank. 

0
Nirmal Mangal

Es gibt einige Missverständnisse bezüglich des Rollennamens und des letzten Teils der URL:

Ursprünglich in Tomcat-usres.xml befanden sich nur "Tomcat" -Benutzer (Rolle Tomcat), Benutzer "Beide" (Tomcat + Rolle1), aber keine Administratorrolle. Es scheint, dass der letzte Teil der URL in einigen Aspekten dem Rollennamen entspricht ...

Das funktionierte für mich ( sonst bekam ich immer 403 sogar korrekter Benutzer + Passwort ):

<?xml version='1.0' encoding='utf-8'?>
<Tomcat-users>
  <role rolename="Tomcat"/>
  <role rolename="admin"/>
  <user username="Tomcat" password="Tomcat" roles="admin,Tomcat"/>
  <user username="admin" password="Tomcat" roles="admin,Tomcat"/>
</Tomcat-users>
0
hfrmobile