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.pswp.cn/news/258414.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258414.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258414.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

二元隱函數求二階偏導_在線計算專題(03):具體、抽象函數的導數、微分與方向導數的計算...

導數與微分是微積分內容的基礎&#xff0c;就計算來說一元函數與多元函數的導數的計算思想一致. 不管是一元函數還是多元函數&#xff0c;導數、偏導數的計算都是將函數視為求導變量的一元函數求導數。微分在描述形式略有區別&#xff0c;但是其計算方法還是一樣&#xff0c;只…

android更換工具鏈

歡迎轉載opendevkit文章, 文章原始地址: http://www.opendevkit.com/?e73 android編譯系統是跟隨android源碼一起發布的&#xff0c;使用了gcc編譯器&#xff0c;也就是所謂的交叉編譯環境。android-4.2里用的編譯器是gcc4.6&#xff0c;本篇升級gcc4.6到gcc4.6&#xff0c;修…

頻域/s域/z域三大變換的性質對比

本文主要介紹三大變換&#xff08;傅里葉變換、拉普拉斯變換及Z變換&#xff09;的性質對比及其常用信號變換。

Java系列(1) JavaEE架構

JavaEE是開發分布式應用的工業標準&#xff0c;Weblogic,BES,Tomcat等是比較常見的JavaEE服務器&#xff0c;嚴格來說Tomcat沒有實現全部的JavaEE規范&#xff0c;只能算是Servlet容器。我們從一幅Spec文檔上的架構圖,粗略了解JavaEE的基本結構。該結構圖表達了JavaEE各元素的邏…

協整檢驗r語言代碼_R語言時間序列分析實例

#加載數據xread.table(file.choose())#生成時間序列對象xtimeseries#畫時間序列圖plot.ts(xtimeseries)#增加線性擬合曲線abline(lm(xtimeseries~time(xtimeseries)))1、分解時間序列分解一個時間序列意味著把它拆分成構成元件&#xff0c;一般序列包含一個趨勢部分、一個不規則…

pat1043. Is It a Binary Search Tree (25)

1043. Is It a Binary Search Tree (25) 時間限制400 ms內存限制65536 kB代碼長度限制16000 B判題程序Standard作者CHEN, YueA Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains o…

微軟待辦應用更新

微軟做了一些更改和優化來改進微軟待辦。 為了在所有設備上獲得最佳體驗&#xff0c;需確保移動和桌面微軟待辦2021 年 12 月 31日之前的版本為 2.49 或更高版本&#xff0c;否則微軟待辦不再支持跨設備同步&#xff0c;但仍然能脫機使用。 桌面版的微軟待辦應用下載地址為&…

出租WiFi到底靠不靠譜?

創業是一種心態&#xff0c;也是不斷的探索&#xff0c;他融入我們的生活&#xff0c;從日常中積累&#xff0c;從小微處啟航。 一、背景交代 最近在換工作&#xff0c;本周搬到新租的單身公寓&#xff0c;空間不大&#xff0c;倒是干凈整潔。委托租房中介幫忙開通寬帶&#xf…

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…

在vue中實現picker樣式_基于Vue實現timepicker

主要用到的還是Vue的基本知識而已&#xff0c;不過要想到的細節很多。先放效果&#xff0c;點擊上框&#xff0c;顯示timepicker。而且可以根據點擊的是時還是分來改變圓盤的數字。這里我用了兩個組件&#xff0c;和&#xff0c;這里的時和分的數值我掛在了根實例中&#xff0c…

玩玩

金字塔一樣輸出字母&#xff0c;如 輸入 d a a b a a b c b a a b c d c b a 代碼實現 #include<stdio.h> int main(void) { char z; int j,t,k; scanf("%c",&z); t0; if(z>a&&z<z) { for(int i0;i<z-a;i) { for(kz-a-t;k…

總結界面框架_UI_Adapter

本人定期更新經典案例及解決方案如有疑問請聯系我QQ1822282728 -- 277627117 下面是常用到的ui Demo安卓三級篩選菜單listview&#xff08;非常經典&#xff09; http://download.csdn.net/detail/zillvip/9138975android地圖應用&#xff08;路徑規劃&#xff0c;地理編碼&…

AD20學習筆記2---原理圖繪制及編譯檢查

前言&#xff1a; 本文學習視頻是B站點擊率第一的凡億教育《Altium Designer 20 19&#xff08;入門到精通全38集&#xff09;四層板智能車PCB設計視頻教程》&#xff0c;視頻地址&#xff1a;Altium Designer 20 19&#xff08;入門到精通全38集&#xff09;四層板智能車PCB設…

git如何設置master分支的權限_Git 從master 分支拉新分支開發

一、 切換到被copy的分支(master)&#xff0c;并且從遠端拉取最新版本$git checkout master$git pull二、從當前分支拉copy開發分支$git checkout -b devSwitched to a new branch dev三、 把新建的分支push到遠端$git push origin dev四、拉取遠端分支$git pullThere is no tr…

Yii框架 phpexcel 導出

一、說明 之前使用的是PHPExcelXML包實現的數據導出&#xff0c;由于導出的文件擴展名為“.xls” 在office2007上帶不開&#xff0c;報如下圖錯誤&#xff08;用 WPS都能打開&#xff09; 因此&#xff0c;此次采用了 PHPExcel包 不僅支持生成Excel&#xff08;.xls&#xff09…

慎用stl中的erase的返回值

在windows下的VC編譯或者Mac OX的XCode下編譯也許不會出問題。但是在linux下可能就會掛掉。 比如我上一篇里的poj4093出現了編譯錯誤 2007120.8890/Main.cc: In function ‘int main()’: 2007120.8890/Main.cc:50:44: error: no match for ‘operator’ in ‘itr1 a.std::set…

AD20學習筆記3---PCB封裝庫的創建方法及現有封裝調用

前言&#xff1a; 本文學習視頻是B站點擊率第一的凡億教育《Altium Designer 20 19&#xff08;入門到精通全38集&#xff09;四層板智能車PCB設計視頻教程》&#xff0c;視頻地址&#xff1a;Altium Designer 20 19&#xff08;入門到精通全38集&#xff09;四層板智能車PCB設…

php的兩種復合數據類型是什么意思_2.4PHP復合數據類型:數組和對象

Posted by 撒得一地 on 2015年9月29日 in PHP入門教程國外穩定加速器推薦vypr |NordPHP中復合數據類型包括兩種&#xff0c;即數組和對象。array(數組)&#xff1a;一組數據的集合。object(對象)&#xff1a;對象是類型的實例&#xff0c;使用new命令來創建。數組(array)數組是…

Python守護進程和腳本單例運行

2019獨角獸企業重金招聘Python工程師標準>>> 一、簡介 守護進程最重要的特性是后臺運行&#xff1b;它必須與其運行前的環境隔離開來&#xff0c;這些環境包括未關閉的文件描述符、控制終端、會話和進程組、工作目錄以及文件創建掩碼等&#xff1b;它可以在系統啟動…