【问题标题】:Tomcat manager app: not authorized to view pageTomcat 管理器应用程序:无权查看页面
【发布时间】:2021-07-16 22:08:49
【问题描述】:

我尝试从 Docker 部署我的应用程序。 在 Dockerfile 中:

  FROM tomcat:9-jre8-alpine
  ADD config/tomcat-users.xml  /usr/local/tomcat/conf/tomcat-users.xml
  ADD config/settings.xml /usr/local/tomcat/conf/settings.xml
  ADD config/context.xml /usr/local/tomcat/webapps/manager/META-INF/context.xml
  ADD target/author.war /usr/local/tomcat/webapps/ROOT.war
  EXPOSE 8080
  CMD ["catalina.sh","run"]

所以,在 tomcat-users.xml 中:

 <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
http://tomcat.apache.org/xml "
          version="1.0">

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

在 settings.xml 中:

    <servers>
          <server>
              <id>TomcatServer</id>
              <username>tomcat</username>
              <password>s3cret</password>
          </server>
      </servers>

在 context.xml 中:

<Context antiResourceLocking="false" privileged="true" >
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
     allow=".*" />
</Context>

但是,尝试远程访问 Tomcat 管理器应用程序(plesk 中的域),我得到了: “您无权查看此页面。默认情况下,Manager 只能通过与 Tomcat 在同一台机器上运行的浏览器访问。如果您希望修改此限制,您需要编辑 Manager 的 context.xml 文件。 ..”

另外:对于 localhost-connection,它的工作很好!远程连接的问题

【问题讨论】:

  • 是的,我试过了。特别是,将 "llow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" 替换为 allow=".*" 但是没有成功
  • 他们要求评论整个 &lt;Valve /&gt; 块(有效地删除它)。除了 localhost 之外,您可能只想更具体地说明您允许哪个 exact 主机,但为了提供从任何地方的访问权限,Valve 部分是关键。 (哎呀,向下滚动 - 这是另一个建议移除阀门的答案 - 但仍然:这是关键)
  • 我评论了这个 。结果相同......
  • 您需要找到正确的文件进行更改,有多个 context.xml 文件。

标签: docker tomcat war plesk


【解决方案1】:

这对我有用:

1-获取图片:

docker pull tomcat:9.0.46-jdk8-adoptopenjdk-openj9

2-创建文件夹d:\folder123

conf\tomcat-users.xml\webapps\manager\META-INF\context.xml 3 份复制到d:\folder123

4-将下面添加到tomcat-users.xml

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

5-从context.xml删除下面

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

6-使用此内容在d:\folder123 中创建Dockerfile

FROM tomcat:9.0.46-jdk8-adoptopenjdk-openj9
USER root
RUN mv /usr/local/tomcat/webapps/ /usr/local/tomcat/webapps2/
RUN mv /usr/local/tomcat/webapps.dist/ /usr/local/tomcat/webapps/
COPY tomcat-users.xml /usr/local/tomcat/conf/
COPY context.xml /usr/local/tomcat/webapps/manager/META-INF/
CMD ["catalina.sh","run"]

7-创建名为amirimage1的新镜像

docker build -t amirimage1:1.0.0 "D:\\folder123"

8 次运行图像

docker run --name amirtomcatcontainer1 -p 8889:8080 amirimage1:1.0.0

【讨论】:

    【解决方案2】:

    您是否检查了 manager.xml 中的阀门值?还有另一个带有 IP 限制的阀门节,我已禁用它。那时一切正常 /conf/Catalina/localhost/

    【讨论】:

      猜你喜欢
      • 2017-01-17
      • 2015-04-11
      • 2020-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多