Tomcat 9をリモートサーバにインストールしましたが、起動後、正常に起動しました。 http:// Host_name:port_num にアクセスしてTomcat helloページを参照できます。しかし、デプロイされたアプリを見るためにマネージャアプリを開こうとすると、403アクセスが拒否されます。Tomcatユーザーxmlにすでに次のようにロールを追加しています。
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<user username="user" password="password" roles="admin,manager,manager-gui"/>
私が見たエラーメッセージは次のとおりです。
デフォルトでは、ホストマネージャはTomcatと同じマシン上で動作しているブラウザからのみアクセス可能です。この制限を変更したい場合は、ホストマネージャのcontext.xmlファイルを編集する必要があります。
Context.xmlファイルを変更してマネージャアプリにアクセスするにはどうすればよいですか?
デプロイされた各Webアプリケーションには、次の場所にあるcontext.xml
ファイルがあります。
$CATALINA_BASE/conf/[enginename]/[hostname]
(conf/Catalina/localhost by default)
webアプリケーションと同じ名前(この場合はmanager.xml
)です。ファイルが存在しない場合は、デフォルト値が使用されます。
そのため、ファイルconf/Catalina/localhost/manager.xml
を作成し、リモートアクセスを許可するルールを指定する必要があります。たとえば、次のmanager.xml
の内容はすべてのマシンからのアクセスを許可します。
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.Apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
Valve
要素のallow属性は、接続しているホストのIPアドレスと一致する正規表現です。他のValve
クラスは他の規則を満たします(例えば、一致するホスト名のRemoteHostValve
)。
上記の変更が行われると、マネージャのURLにアクセスすると認証ダイアログが表示されます。あなたがTomcat-users.xml
にあなたが提供した詳細を入力するならば、あなたはマネージャへのアクセスを持つべきです。
Tomcat v8.5.4以降では、ファイル<Tomcat>/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>
このファイルを変更してValve
をコメントアウトします。
<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>
その後、ブラウザを更新してください(Tomcatを再起動する必要はありません)。マネージャのページを見ることができます。
Following two configuration is working for me.
1 .Tomcat-users.xml details
--------------------------------
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="Tomcat"/>
<user username="Tomcat" password="Tomcat" roles="Tomcat"/>
<user username="admin" password="admin" roles="admin-gui"/>
<user username="adminscript" password="adminscrip" roles="admin-script"/>
<user username="Tomcat" password="s3cret" roles="manager-gui"/>
<user username="status" password="status" roles="manager-status"/>
<user username="both" password="both" roles="manager-gui,manager-status"/>
<user username="script" password="script" roles="manager-script"/>
<user username="jmx" password="jmx" roles="manager-jmx"/>
2. context.xml of <Tomcat>/webapps/manager/META-INF/context.xml and
<Tomcat>/webapps/Host-manager/META-INF/context.xml
------------------------------------------------------------------------
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.Apache.catalina.valves.RemoteAddrValve"
allow=".*" />
<Manager sessionAttributeValueClassNameFilter="Java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.Apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|Java\.util\.(?:Linked)?HashMap"/>