Tomcat8.0.21登陸時忘記用戶名和密碼

  大概是這學期開學沒多久吧,4月份的時候,爲了學習javaEE,裝了Tomcat。過了這麼久早就忘記用戶名和密碼了,因此沒法進入Tomcat的管理界面。百度(其實我也很想用google)了一堆,幾乎都是修改用戶配置文件,多是版本的差別,對於我這個版本都沒有太大用處。其實只要按照tomcat的提示一步步去作就能夠解決,前提是英語基礎要好,其實技術文章比文學做品和四級考試好懂多了,語言很直白,歷來不拐彎抹角。html

  下面是解決這個問題的步驟:java

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

      個人配置文件在D:\Program Files\Apache Software Foundation\Tomcat 8.0\conf。在這個目錄下存放了全部有關Tomcat的配置文件,包括 content.xml,server.xml,web.xml,tomcat-users.xml,每一個配置文件都有本身的做用,咱們須要修改的是跟用戶相關的tomcat-users.xml。web

  打開tomcat-users.xml配置文件(我省略了部分註釋):apache

 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

2、重啓Tomcatapp

  命令行怎麼重啓我還不太清楚,之後轉移到linux平臺的時候更多的確定仍是用命令行,姑且先用圖形化工具吧。不過它好像沒提供restart選項,我只好先stop service,再start。從新啓動的時候,tomcat會從新讀取xml配置文件,這時剛纔具備管理員權限的用戶就被添加進去了。在瀏覽器輸入192.168.1.106:8080,瀏覽器會訪問默認頁面工具

  在這個頁面的右辺有3個按鈕,咱們剛纔的配置只會對第1個和第2個按鈕起做用,點擊這兩個button,輸入用戶名和密碼就能夠訪問/manage/html 和/manage/status頁面了學習

3、遇到的新問題

  然而若是點擊第1個或者第3個按鈕,就會出現下面的狀況:

  在這個報錯頁面裏已經給出了詳細的解決方案,若是英文水平還能夠而且願意靜下心來看一看,就知道怎麼解決這個問題了。剛纔咱們添加了一個manager-gui的角色,而且添加了一個具備這種角色相應權限的用戶。此次咱們只須要再添加一個admin-gui角色,並添加這樣一個屬於這種角色的用戶就能夠了。我在原來的配置文件裏又添加了39,40兩行代碼:

修改後保存,此次,重啓Tomcat,就能夠訪問原來403禁止訪問的/host-manager/html頁面了

 4、最終的解決之道

   然而,顧此失彼, 雖然/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,此次終於奏效了。

5、感悟

  遇到問題的時候,文檔或者配置文件自己就是最好的資料,要善於模仿文檔的書寫方式試着去猜想並理解每一個參數的含義,同時必定要具有必定的英語閱讀理解能力。

相關文章
相關標籤/搜索