web-dev-qa-db-ja.com

ユーザー/パスワードを要求せずにTomcat 8マネージャーアプリで403アクセスが拒否されました

this に従ってTomcat 8をセットアップしました。次のTomcat-users.xmlファイルがあります。

<?xml version="1.0" encoding="UTF-8"?>
<Tomcat-users xmlns="http://Tomcat.Apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://Tomcat.Apache.org/xml Tomcat-users.xsd"
              version="1.0"> 
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>

  <user username="notadmin" password="not_real_pass" roles="manager-gui"/>
  <user username="cargo" password="not_real_pass" roles="manager-script"/>
<Tomcat-users/>

Managerアプリにアクセスしようとすると、ユーザー名とパスワードの入力を求められず、403で拒否されます。

構成で見逃したものは何ですか?

Edit1:完全なxmlファイルを追加しました。

39

正解を見つけることができます こちら


この問題は、Unixマシンで言及されたチュートリアルを実行中に再現できるようです。また、作者がTC 8.0.33を使用していることにも気付きました。
Win(およびOSX)には、少なくとも私の環境ではこのような問題はありません:

Server version:        Apache Tomcat/8.5.4
Server built:          Jul 6 2016 08:43:30 UTC
Server number:         8.5.4.0
OS Name:               Windows 8.1
OS Version:            6.3
Architecture:          AMD64
Java Home:             C:\TOOLS\jdk1.8.0_101\jre
JVM Version:           1.8.0_101-b13
JVM Vendor:            Oracle Corporation
CATALINA_BASE:         C:\TOOLS\Tomcat\Apache-Tomcat-8.5.4
CATALINA_HOME:         C:\TOOLS\Tomcat\Apache-Tomcat-8.5.4

Tomcat-users.xmlがロールを追加して変更された後、ユーザーTomcat Web Application ManagerTomcat/8.5.4でアクセスできます。

12
Gerardas

これはうまくいくかもしれません。
CATALINA_HOME/webapps/manager/META-INF/context.xmlファイルを見つけて、バルブの周りにコメントマーカーを追加します。
<Context antiResourceLocking="false" privileged="true" > <!-- <Valve className="org.Apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> --> </Context>
このページで詳細を確認できます。

108
fade

私のために働いた解決策は、context.xml$CATALINA_HOME/webapps/manager/META-INFの両方で$CATALINA_HOME/webapps/Host-manager/META-INFファイルを編集することです。ここで私のIPは123.123.123.123です。

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.Apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|123.123.123.123" />
</Context>

Ubuntu 8.5にTomcat 8.5をインストールし、$CATALINA_HOME/conf/Tomcat-users.xmlを編集しました:

<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="myuser" password="mypass" roles="admin-gui,manager-gui"/>

ただし、localhost:8080/manager/htmlファイルを編集するまで、Tomcat Web Application Manager(localhost:8080/Host-manager/html)とTomcat Virtual Host Manager(context.xml)の両方にアクセスできませんでした。

13
kimbaudi

こちらの便利なリンク: 異なるホストからTomcat Managerアプリにアクセス

Tomcatバージョン8以降、manager/html URLはlocalhost以外の誰もアクセスできなくなります。

/ manager/html urlにアクセスするには、マネージャーアプリのcontext.xmlで以下の変更を行う必要があります。 1./ Apache-Tomcat-8.5.23/webapps/manager/META-INFの場所に移動し、context.xml

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.Apache.catalina.valves.RemoteAddrValve"
         allow="^.*$" />
 ......
</Context>
  1. サーバーを再起動します。
11
Vish

次のファイルを変更する必要があります

$CATALINA_BASE/conf/Catalina/localhost/manager.xmlおよび次の行を追加

  <Context privileged="true" antiResourceLocking="false" 
     docBase="${catalina.home}/webapps/manager">
        <Valve className="org.Apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
  </Context>

これにより、特定のIPへのアクセスを許可する場合は、allow="^.*$"の代わりに以下の値を使用して、Tomcatに任意のマシンからアクセスできます。

    <Valve className="org.Apache.catalina.valves.RemoteAddrValve" allow="192\.168\.11\.234" />
8
user2720864

上記のいずれにも当てはまらない場合は、Tomcatがwebapps(chown ...)の下のmanagerフォルダーにアクセスできることを確認してください。メッセージはまったく同じメッセージであり、問​​題を特定するのに2時間かかりました。 :-)

私と同じ問題のためにここに来た誰かのためだけに。

2
alizelzele

fadeの答えは私のために働いた。 8.0.30から8.5.5に移行しましたが、違いは<8.0.30> /manager/META-INF/context.xmlのValveがすでにコメントアウトされていたことですfromtarファイルですが、8.5.5 tarでは非コメント化されていました

403応答でこの重要なメッセージを読むことができませんでした。

デフォルトでは、ManagerはTomcatと同じマシンで実行されているブラウザからのみアクセスできます。この制限を変更する場合は、Managerのcontext.xmlファイルを編集する必要があります。

そしてこれも読めませんでした:

R1734267以降、RemoteAddrValve。はManagerおよびHostManager Webアプリケーションでデフォルトで設定されます。この機能は9.0.0.M4および8.5.0以降に存在します。

https://bz.Apache.org/bugzilla/show_bug.cgi?id=59672

2
Jim

「」のようなパスワードが設定されているデフォルトの構成のコメントを愚かにコメント解除しました。 Tomcatはこのファイルの解析に失敗し(「<」のため)、追加した他の設定は機能しません。

1
chrismarx

私の場合、web.xmlで定義されたセキュリティ制約でした。 Tomcat-users.xmlファイルで使用するのと同じ役割を持っていることを確認してください。

たとえば、これはすぐに使用可能なタグの1つであり、標準のTomcat-users.xmlで機能します。

 <security-constraint>
    <web-resource-collection>
      <web-resource-name>HTML Manager interface (for humans)</web-resource-name>
      <url-pattern>/html/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-gui</role-name>
    </auth-constraint>
  </security-constraint>

私の場合、管理者が別のロール名を使用していたため、マネージャーにアクセスできませんでした。

1
Mustafa
  1. /Apache-Tomcat-9.0.20/Tomcat-users.xmlでファイルを開いてユーザーを作成してください。ユーザーが作成されているかどうかを確認してください。

    <user username="Tomcat" password="Tomcat" roles="admin-gui,manager-gui,manager-script" />

  2. /Apache-Tomcat-9.0.20/webapps/manager/META-INF/に移動して、context.xmlを開いて、コンテキストタグの例ですべてをコメントします。

<Context antiResourceLocking="false" privileged="true" >
     <!--Valve className="org.Apache.catalina.valves.RemoteAddrValve"
            allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /-->
   </Context>
0
Pratik Gaurav

manager-guimanager-scriptの両方の役割を追加する必要がありました動作するようにバージョン9で。

MangerAppへのアクセスを取得した後、.warファイルをアップロードしようとしたときに例外が発生しました

org.Apache.Tomcat.util.http.fileupload.FileUploadBase$IOFileUploadException

これの答えを使用して解決できました post

Host Managerへのアクセスを取得するには、これをチェックしてください post

0
Sameer Sinha

以下のコンテンツをファイルTomcat-users.xmlにコピーします

<?xml version='1.0' encoding='utf-8'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.Apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<Tomcat-users xmlns="http://Tomcat.Apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://Tomcat.Apache.org/xml Tomcat-users.xsd"
              version="1.0">
<!--
  NOTE:  By default, no user is included in the "manager-gui" role required
  to operate the "/manager/html" web application.  If you wish to use this app,
  you must define such a user - the username and password are arbitrary. It is
  strongly recommended that you do NOT use one of the users in the commented out
  section below since they are intended for use with the examples web
  application.
-->
<!--
  NOTE:  The sample user and role entries below are intended for use with the
  examples web application. They are wrapped in a comment and thus are ignored
  when reading this file. If you wish to configure these users for use with the
  examples web application, do not forget to remove the <!.. ..> that surrounds
  them. You will also need to set the passwords to something appropriate.
-->
<!--
  <role rolename="Tomcat"/>
  <role rolename="role1"/>
  <user username="Tomcat" password="<must-be-changed>" roles="Tomcat"/>
  <user username="both" password="<must-be-changed>" roles="Tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
<role rolename="manager-gui"/>
<role rolename="manager-script"/>

<user username="notadmin" password="not_real_pass" roles="manager-gui"/>
<user username="cargo" password="not_real_pass" roles="manager-script"/>


</Tomcat-users>

私はテストしましたが、うまくいきます!

enter image description here

0
Do Nhu Vy

同じチュートリアルに従いましたが、数か月後、マネージャーアプリを使用しようとすると「403アクセスが拒否されました」というエラーが表示されました。この場合、アドレスバーでipaddress:8080を使用していましたが、Tomcat Managerアプリはユーザー/パスワードの入力を求めませんでした。 localhost:8080の場合、エラーは「401」で、ユーザー名とパスワードを要求するダイアログボックスが表示されましたが、ユーザーは認識されませんでした。

私は幸運なく以前の提案/解決策をすべて試しました。 私が見つけた唯一の方法は、チュートリアル全体を繰り返してファイルも上書きすることでした。完了したら、webappsディレクトリに古いデプロイされたプロジェクトが再び見つかりました。これで、Apache Tomcat/8.5.16 Managerアプリが再び機能します。私はTomcatユーザーの初心者なので、何が起こったのか分かりません

0
Luigi D'Alessio

Tomcatをdockerにインストールしているときに同じ問題が発生していました。 「127.\d +。\ d +。\ d + | :: 1 | 0:0:0:0:0:0:0:1:1123.123.123.123」の代わりに「^。* $」を追加して解決しました

Tomcatを再起動します。

0
Prasad MCN

正しい答えは、@ JaKuが指摘したとおりです。 Tomcatは、ローカルホストへのアクセスを制限して安全にしています。これはあるべき姿です。 Tomcatへのポート転送は、できればSSHなどの安全な環境で行うのが正しい方法です。

0
Outfast Source