Tomcat【部署 02】Web端403 Access Denied You are not authorized to view this page解决方法(Tomcat 10.2.12 版本)

简介: Tomcat【部署 02】Web端403 Access Denied You are not authorized to view this page解决方法(Tomcat 10.2.12 版本)

1. 问题说明

启动Tomcat之后,我们常常是要打开Web端进行验证,其实Web端的功还有很多,但是有一些管理页面权限不足:

我们点击 Manager Status 或 Manager App 链接之后会报错 403 Access Denied You are not authorized to view this page :

而点击 Host Manager 链接之后报错信息不同:

2. 问题解决

2.1 修改配置文件

403页面提到的第 1️⃣ 个文件:默认情况下,只能从运行在与 Tomcat 相同机器上的浏览器访问Manager。如果您希望修改此限制,则需要编辑 Manage r的 context.xml 文件。查看以下:

<!-- The contents of this file will be loaded for each web application -->
<Context>
    <!-- Default set of monitored resources. If one of these changes, the    -->
    <!-- web application will be reloaded.                                   -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
    <!-- Uncomment this to enable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="SESSIONS.ser" />
    -->
</Context>
vim /usr/local/tomcat/conf/context.xml

context.xml里有两方面的描述,一个是检测资源的配置(文件修改则会重新加载),另一个是session会话的使用。似乎没有权限相关的说明,我们取消第二部分的注释以便在Tomcat重启后保持会话。

403页面提到的第 2️⃣ 个文件: conf/tomcat-users.xml That file must contain the credentials to let you use this webapp. 该文件必须包含允许您使用此webapp的凭据。【满满的角色权限相关的说明】 我们按照举例修改 tomcat-users.xml 文件添加角色和用户:

vim /usr/local/tomcat/conf/tomcat-users.xml

在<tomcat-users></tomcat-users>标签内添加以下信息:

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

❗️❗️❗️ 注意: 重启 Tomcat 后再次访问 Manager Status 或 Manager App 页面,不出意外的话还是会报 403 Access Denied 错误的,为什么呢?我们再认真看看报错信息:

  • 访问 Manager Status 或 Manager App 页面时的报错信息:

If you wish to modify this restriction, you’ll need to edit the Manager's context.xml file.

  • 访问 Host Manager 页面时的报错信息:

If you wish to modify this restriction, you’ll need to edit the Host Manager's context.xml file.

此时才明白403页面说的 context.xml 并非 $CATALINA_HOME/conf/ 下的 context.xml 文件,而是 $CATALINA_HOME/webapps/manager/META-INF/context.xml $CATALINA_HOME/webapps/host-manager/META-INF/context.xml 这两个文件,全部修改 RemoteAddrValve 的值:

<!-- RemoteAddrValve的原始值 -->
 <Valve className="org.apache.catalina.valves.RemoteAddrValve" 
 allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
 <!-- RemoteAddrValve修改后的值(其实就是释放所有IP的访问权限) -->
 <Valve className="org.apache.catalina.valves.RemoteAddrValve" 
allow="\d+\.\d+\.\d+\.\d+" />
2.2 重启登录

重新启动后,点击 Server Status 或 Manager App 页面,需要登录,此时输入 tomcat-users.xml 文件设置的用户及密码:

登录成功后 Server Status 可以查看服务器状态:

Manager App 可以在Web页面上部署项目:

而 Host Manager 页面需要再次进行登录(密码相同)可以管理虚拟主机:

至此,全部的 Web端 403 Access Denied 问题解决~

目录
相关文章
|
28天前
|
Java 应用服务中间件 Apache
Maven程序 tomcat插件安装与web工程启动
Maven程序 tomcat插件安装与web工程启动
27 0
|
1月前
|
XML 网络协议 Java
JavaWeb -- HTTP -- WEB服务器TOMCAT
JavaWeb -- HTTP -- WEB服务器TOMCAT
|
26天前
|
Ubuntu 前端开发 JavaScript
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
|
3天前
|
弹性计算 数据库 数据安全/隐私保护
阿里云服务器真香宝典之Calibre-Web个人图书馆云端部署
在阿里云ECS(2核2G,SSD40G,3M带宽)上,安装Ubuntu 22.04,然后配置Docker和FTP。创建 `/config` 和 `/books` 目录,设置权限,开放端口,拉取 `johngong/calibre-web` Docker镜像,以`calibre-web`命名容器,映射端口,配置环境变量,挂载卷,确保重启策略。本地安装Calibre客户端,上传metadata.db到服务器。在Calibre-web服务端配置数据库,启用上传权限,修改管理员账户信息。完成配置后,开始上传电子书并进行阅读。
66 2
阿里云服务器真香宝典之Calibre-Web个人图书馆云端部署
|
1天前
|
Java 应用服务中间件 Shell
|
1月前
|
Java 应用服务中间件 Apache
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
58 7
|
1月前
|
监控 测试技术 开发者
【Docker项目实战】使用Docker部署NextTrace Web路由工具
【6月更文挑战第16天】使用Docker部署NextTrace Web路由工具
44 4
|
18天前
|
Java 应用服务中间件 Linux
Tomcat安装部署[单机软件],可以让用户开发的WEB应用程序,变成可以被访问的网页,Tomcat的使用需要jdk环境
Tomcat安装部署[单机软件],可以让用户开发的WEB应用程序,变成可以被访问的网页,Tomcat的使用需要jdk环境
|
1月前
|
IDE Java 应用服务中间件
Tomcat部署的服务有部分中文是乱码如何处理
【6月更文挑战第9天】Tomcat部署的服务有部分中文是乱码如何处理
29 5
|
1月前
|
tengine 安全 应用服务中间件
修改Nginx/Tengine版本名称伪装任意WEB SERVER
修改Nginx/Tengine版本名称伪装任意WEB SERVER