web-dev-qa-db-ja.com

tomcat7-maven-plugin tomcat Managerステータスコード:403、ReasonPhrase:Forbidden

私はやろうとしているmvn clean package Tomcat7:deployですが、常にこのエラーが発生します:tomcatManager status code:403, ReasonPhrase:Forbbiden

私の構成は次のとおりです:

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

私の間違いは何ですか?見えないから。

完全なメッセージエラー:

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

私はTomcat 7.0.32を持っていて、それを常に再起動します。ユーザーに関する設定や、再度ロードする必要があるものを変更します。

25
Fran b

同じ問題がありました。しかし、私はこの問題の次の解決策を見つけました:

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

Tomcat-users.xmlを変更した後、サーバーを再起動することを忘れないでください。また、manager-guiロールにmanager-scriptを割り当てないでください同じユーザーに。

62
Dzmitry

このようにするのに十分

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>

から 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

このエラーは、同じ名前の同じWARがすでにTomcatにデプロイされている場合にも表示されます。

3
Edgar Torres

URLは正しく使用されていません:

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

これをコメントとして追加したかったのですが、十分な評判スコアがありません。

誰かの役に立つかもしれないので、これを答えとして追加します。 Eclipseを使用してTomcat7にデプロイしようとすると、まったく同じエラーが発生しましたが、上記の解決策を試しても機能しませんでした。最後に、commandline(cmd)を使用してEclipseの外で試してみましたが、それは魅力のように機能しました。明らかに、マシンにmavenをインストールし、M2_Homeユーザー変数とM2_HOME/binを指すパス変数を設定する必要がありました。

ありがとう。

0
Nirmal Mangal

ロール名とURLの最後の部分について誤解があります。

元々Tomcat-usres.xmlには、「Tomcat」ユーザー(ロールTomcat)、ユーザー「both」(Tomcat + role1)のみがあり、管理ロールはありませんでした。 URLの最後の部分はある面でロール名に等しいようです...

これは私のために働きました(そうでなければ、私は正しいユーザーとパスワードが提供されていても常に403を得ました):

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