Tomcat8.0.21登录时忘记用户名和密码

  大概是这学期开学没多久吧,4月份的时候,为了学习javaEE,装了Tomcat。过了这么久早就忘记用户名和密码了,所以无法进入Tomcat的管理界面。百度(其实我也很想用google)了一堆,几乎都是修改用户配置文件,可能是版本的差异,对于我这个版本都没有太大用处。其实只要按照tomcat的提示一步步去做就可以解决,前提是英语基础要好,其实技术文章比文学作品和四级考试好懂多了,语言很直白,从来不拐弯抹角。

  下面是解决这个问题的步骤:

 一、找到Tomcat配置文件的位置,修改tomcat-users.xml

      我的配置文件在D:\Program Files\Apache Software Foundation\Tomcat 8.0\conf。在这个目录下存放了所有有关Tomcat的配置文件,包括 content.xml,server.xml,web.xml,tomcat-users.xml,每个配置文件都有自己的作用,我们需要修改的是跟用户相关的tomcat-users.xml。

  打开tomcat-users.xml配置文件(我省略了部分注释):

 1   <?xml version='1.0' encoding='cp936'?>
 2   <tomcat-users xmlns="http://tomcat.apache.org/xml"
 3                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4                 xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
 5                version="1.0">
 6   <!--
 7    NOTE:  By default, no user is included in the "manager-gui" role required
 8    to operate the "/manager/html" web application.  If you wish to use this app,
 9    you must define such a user - the username and password are arbitrary.
10 -->
11   <!--
12   NOTE:  The sample user and role entries below are wrapped in a comment
13   and thus are ignored when reading this file. Do not forget to remove
14   <!.. ..> that surrounds them.
15 -->
16   <role rolename="tomcat"/>
17   <role rolename="role1"/>
18   <user username="tomcat" password="tomcat" roles="tomcat"/>
19   <user username="both" password="tomcat" roles="tomcat,role1"/>
20   <user username="role1" password="tomcat" roles="role1"/>
21   </tomcat-users>

  配置文件里7-11行的注释说的很清楚:默认情况下没有用户包括在可以操作"/manager/html"页面的"manager-gui"的角色中,如果你想开启这种应用,你可以定义一个这样的用户,用户名和密码随意。于是我添加了几行代码,修改后的配置文件是这样的:

 1 <?xml version='1.0' encoding='cp936'?>
 2 <tomcat-users xmlns="http://tomcat.apache.org/xml"
 3               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4               xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
 5               version="1.0">
 6 <!--
 7   NOTE:  By default, no user is included in the "manager-gui" role required
 8   to operate the "/manager/html" web application.  If you wish to use this app,
 9   you must define such a user - the username and password are arbitrary.
10 -->
11 <!--
12   NOTE:  The sample user and role entries below are wrapped in a comment
13   and thus are ignored when reading this file. Do not forget to remove
14   <!.. ..> that surrounds them.
15 -->
16   <role rolename="tomcat"/>
17   <role rolename="role1"/>
18   <user username="tomcat" password="tomcat" roles="tomcat"/>
19   <user username="both" password="tomcat" roles="tomcat,role1"/>
20   <user username="role1" password="tomcat" roles="role1"/>

21 <role rolename="manager-gui"/> 22 <user username="admin" password="admin" roles="admin-gui"/> 23 </tomcat-users>

  添加了 <role rolename="manager-gui"/> <user username="admin" password="admin" roles="manager-gui"/>  这两行代码后就添加了一个角色manager-gui,并且添加了一个用户,用户名是admin,密码是admin,角色是manager-gui,记得修改完后要Ctrl+S保存一下。

二、重启Tomcat

  命令行怎么重启我还不太清楚,以后转移到linux平台的时候更多的肯定还是用命令行,姑且先用图形化工具吧。不过它好像没提供restart选项,我只好先stop service,再start。重新启动的时候,tomcat会重新读取xml配置文件,这时刚才具有管理员权限的用户就被添加进去了。在浏览器输入192.168.1.106:8080,浏览器会访问默认页面

  在这个页面的右辺有3个按钮,我们刚才的配置只会对第1个和第2个按钮起作用,点击这两个button,输入用户名和密码就可以访问/manage/html 和/manage/status页面了

三、遇到的新问题

  然而如果点击第1个或者第3个按钮,就会出现下面的情况:

  在这个报错页面里已经给出了详细的解决方案,如果英文水平还可以并且愿意静下心来看一看,就知道怎么解决这个问题了。刚才我们添加了一个manager-gui的角色,并且添加了一个具有这种角色相应权限的用户。这次我们只需要再添加一个admin-gui角色,并添加这样一个属于这种角色的用户就可以了。我在原来的配置文件里又添加了39,40两行代码:

修改后保存,这次,重启Tomcat,就可以访问原来403禁止访问的/host-manager/html页面了

 四、最终的解决之道

   然而,顾此失彼, 虽然/host-manager/html页面可以访问了,但是原来的两个页面却被403forbidden了,我思考了一会儿,觉得问题还是出在配置文件上。在刚才的方法中,我添加了两个名字相同的用户admin(暂且不论他们的密码是否相同),分别赋予他们不同的角色,但是tomcat在处理这个信息的时候会覆盖这个前一条配置信息,tomcat会以为你想修改这个用户的角色,把他从manager-gui改为admin-gui。如果我当时在创建角色为admin-gui的用户是名字不和manager-gui角色的用户名相同,比如取名admin2,这样在登录/host-manager/html页面时用admin2的用户名登录,并输入相应的密码就不会403forbidden了。但是要记两个用户名和密码很麻烦,怎么办呢?

  从配置文件前面的部分      <user username="tomcat" password="tomcat" roles="tomcat"/><user username="both" password="tomcat" roles="tomcat,role1"/>可以看出,这样就给一个用户同时赋予两种角色了。于是我将配置文件修改成了这样:<role rolename="admin-gui"/>   <user username="admin" password="admin" roles="admin-gui,manager-gui"/> 保存后重启tomcat,这次终于奏效了。

五、感悟

  遇到问题的时候,文档或者配置文件本身就是最好的资料,要善于模仿文档的书写方式试着去猜测并理解每个参数的含义,同时一定要具备一定的英语阅读理解能力。

 

转载于:https://www.cnblogs.com/suddoo/p/4769867.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二元隐函数求二阶偏导_在线计算专题(03):具体、抽象函数的导数、微分与方向导数的计算...

导数与微分是微积分内容的基础&#xff0c;就计算来说一元函数与多元函数的导数的计算思想一致. 不管是一元函数还是多元函数&#xff0c;导数、偏导数的计算都是将函数视为求导变量的一元函数求导数。微分在描述形式略有区别&#xff0c;但是其计算方法还是一样&#xff0c;只…

频域/s域/z域三大变换的性质对比

本文主要介绍三大变换&#xff08;傅里叶变换、拉普拉斯变换及Z变换&#xff09;的性质对比及其常用信号变换。

Java系列(1) JavaEE架构

JavaEE是开发分布式应用的工业标准&#xff0c;Weblogic,BES,Tomcat等是比较常见的JavaEE服务器&#xff0c;严格来说Tomcat没有实现全部的JavaEE规范&#xff0c;只能算是Servlet容器。我们从一幅Spec文档上的架构图,粗略了解JavaEE的基本结构。该结构图表达了JavaEE各元素的逻…

微软待办应用更新

微软做了一些更改和优化来改进微软待办。 为了在所有设备上获得最佳体验&#xff0c;需确保移动和桌面微软待办2021 年 12 月 31日之前的版本为 2.49 或更高版本&#xff0c;否则微软待办不再支持跨设备同步&#xff0c;但仍然能脱机使用。 桌面版的微软待办应用下载地址为&…

AD20学习笔记1---元件库的创建

前言&#xff1a; 本文学习视频是B站点击率第一的凡亿教育《Altium Designer 20 19&#xff08;入门到精通全38集&#xff09;四层板智能车PCB设计视频教程》&#xff0c;视频地址&#xff1a;Altium Designer 20 19&#xff08;入门到精通全38集&#xff09;四层板智能车PCB设…

nodejs环境搭建与express安装配置

一、NPM 1、下载nodeJS 下载地址&#xff1a;https://nodejs.org/en/download/ 因为我的系统是Linux 的&#xff0c;所以下载已经编译好的Linux&#xff0c;nodejs tar包 3、下载完成过后放到/usr/local/下面 4、解压&#xff1a;因为这个包不是gz的包所以解压 正确&#xff1a…

AD20学习笔记2---原理图绘制及编译检查

前言&#xff1a; 本文学习视频是B站点击率第一的凡亿教育《Altium Designer 20 19&#xff08;入门到精通全38集&#xff09;四层板智能车PCB设计视频教程》&#xff0c;视频地址&#xff1a;Altium Designer 20 19&#xff08;入门到精通全38集&#xff09;四层板智能车PCB设…

Yii框架 phpexcel 导出

一、说明 之前使用的是PHPExcelXML包实现的数据导出&#xff0c;由于导出的文件扩展名为“.xls” 在office2007上带不开&#xff0c;报如下图错误&#xff08;用 WPS都能打开&#xff09; 因此&#xff0c;此次采用了 PHPExcel包 不仅支持生成Excel&#xff08;.xls&#xff09…

AD20学习笔记3---PCB封装库的创建方法及现有封装调用

前言&#xff1a; 本文学习视频是B站点击率第一的凡亿教育《Altium Designer 20 19&#xff08;入门到精通全38集&#xff09;四层板智能车PCB设计视频教程》&#xff0c;视频地址&#xff1a;Altium Designer 20 19&#xff08;入门到精通全38集&#xff09;四层板智能车PCB设…

Python守护进程和脚本单例运行

2019独角兽企业重金招聘Python工程师标准>>> 一、简介 守护进程最重要的特性是后台运行&#xff1b;它必须与其运行前的环境隔离开来&#xff0c;这些环境包括未关闭的文件描述符、控制终端、会话和进程组、工作目录以及文件创建掩码等&#xff1b;它可以在系统启动…

AD20学习笔记4---网表导入及模块化布局设计

前言&#xff1a; 本文学习视频是B站点击率第一的凡亿教育《Altium Designer 20 19&#xff08;入门到精通全38集&#xff09;四层板智能车PCB设计视频教程》&#xff0c;视频地址&#xff1a;Altium Designer 20 19&#xff08;入门到精通全38集&#xff09;四层板智能车PCB设…

javascript 模块化

2019独角兽企业重金招聘Python工程师标准>>> 一直好奇像node.js,require.js的模块化是怎么做的&#xff0c;在看了《你不知道的javascript》后&#xff0c;对js的模块化有了一些简单的了解。这本书真的还不错。 书里讲述了js的模块化的原理 和 现代js实现模块化的简…

AD20学习笔记5---PCB设计规则设置及PCB手工布线

前言&#xff1a; 本文学习视频是B站点击率第一的凡亿教育《Altium Designer 20 19&#xff08;入门到精通全38集&#xff09;四层板智能车PCB设计视频教程》&#xff0c;视频地址&#xff1a;Altium Designer 20 19&#xff08;入门到精通全38集&#xff09;四层板智能车PCB设…

理论物理极础9:相空间流体和吉布斯-刘维尔定理

莱尼喜欢看河&#xff0c;尤其喜欢看漂浮物顺流而下。他猜想漂浮物如何穿过礁石&#xff0c;如何陷入漩涡。但是河流整体&#xff0c;水量&#xff0c;流切变&#xff0c;河的分流和汇聚&#xff0c;这是莱尼所看不到的。 相空间流体 在经典力学里&#xff0c;注视一个特别的初…

nginx没有worker进程_如何优雅地关闭worker进程?

点击上方“武培轩”&#xff0c;选择“设为星标”技术文章第一时间送达&#xff01;之前我们讲解 Nginx 命令行的时候&#xff0c;可以看到 Nginx 停止有两种方式&#xff0c;分别是 nginx -s quit 和 nginx -s stop&#xff0c;其中 stop 是指立即停止 Nginx&#xff0c;而 qu…

RC电路输出波形的时域与频域分析

RC一阶电路为例进行时域和频域分析&#xff0c;激励Us为方波&#xff0c;以Uc作为输出的波形相当于积分电路的输出曲线&#xff0c;以Ur作为输出的波形相当于微分电路的输出曲线。电容对输入电压具有平滑作用&#xff0c;平滑程度与时间常数有关&#xff0c;衰减程度与带宽设计…

多麦克风做拾音的波束_麦克风阵列是什么 有哪些关键技术?

麦克风阵列是什么 有哪些关键技术&#xff1f;亚马逊Echo和谷歌Home争奇斗艳&#xff0c;除了云端服务&#xff0c;他们在硬件上到底有哪些差异&#xff1f;我们先将Echo和Home两款音箱拆开来看&#xff0c;区别最大的还是麦克风阵列技术。Amazon Echo采用的是环形61麦克风阵列…

如何用AD20打开ddb文件

用AD20直接打开ddb文件会报错&#xff0c;在AD20中使用导入向导才是ddb文件的正确打开方式。 1.用AD20直接打开ddb文件的报错提示 2.使用导入向导打开ddb文件 除了以下两处关键设置的地方&#xff0c;一路next就行。

Codeforces Round #419 (Div. 2)

1.题目A&#xff1a;Karen and Morning 题意&#xff1a; 给出hh:mm格式的时间&#xff0c;问至少经过多少分钟后&#xff0c;该时刻为回文字符串&#xff1f; 思路&#xff1a; 简单模拟&#xff0c;从当前时刻开始&#xff0c;如果hh的回文rh等于mm则停止累计。否则&#xff…

Java NIO 系列教程

Java NIO&#xff08;New IO&#xff09;是从Java 1.4版本开始引入的一个新的IO API&#xff0c;可以替代标准的Java IO API。本系列教程将有助于你学习和理解Java NIO。感谢并发编程网的翻译和投递。 &#xff08;关注ITeye官微&#xff0c;随时随地查看最新开发资讯、技术文章…