読者です 読者をやめる 読者になる 読者になる

Tomcat8で、デフォルトだとローカル以外からmanagerが表示できない

[programming]
スポンサーリンク

Tomcat8をインストールして、managerを見ようとしたところ、403 Access Denied となったので、画面に表示されていた通りtomcat-user.xmlmanager-guiというロールでユーザを追加します。Tomcat6の時は、managerだったのが、Tomcat7以降で変わったようですね。

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

これだけだと、ローカル以外からアクセスできませんでした。

よくよく調べたところ、デフォルトだとローカル以外からアクセスできないように制限されているようです。(ちゃんとエラーページにも書いてありました)

By default the Manager is only accessible from a browser running on the same machine as Tomcat. If you wish to modify this restriction, you'll need to edit the Manager's context.xml file.

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>

allowのところに正規表現で許可するアドレスを書いてあげると、問題なくアクセスできるようになりました。