Tomcat用戶角色分配與設置研究
發(fā)布時間:2018-07-01 來源: 美文摘抄 點擊:
摘 要:Tomcat作為Java技術方向使用最廣的服務器器之一,其自身所帶的Tomcat Manager用來對服務器和部署在服務器上的web應用進行統(tǒng)一而有效的管理。擁有適當?shù)挠脩艚巧堑顷慣omcat Manager的前提,只有具有相應的角色權限,才能在權限所允許的范圍內訪問Tomcat服務器提供的接口,執(zhí)行部署在服務器上的web應用。
關鍵詞:部署;權限;接口
1 引言
默認情況下,Tomcat Manager是處于禁用狀態(tài),既是說,Tomcat Manager需要以用戶角色進行登陸并授權才能使用其角色對應的功能。在Tomcat第7版之后,Tomcat沒有分配任何默認的用戶,對Tomcat中包含的角色的認知和配置其所屬的用戶成為訪問Tomcat Manager的重要一個步驟。
2 Tomcat角色概述
Tomcat是由Apache軟件基金會下屬的Jakarta項目開發(fā)的一個Servlet容器,依照原Sun Microsystems提供的技術規(guī)范,實現(xiàn)了對Servlet和JavaServer Page(JSP)的支持,并提供了作為Web服務器的一些特有功能。由于Tomcat本身也內含了一個HTTP服務器,它也可以被視作一個單獨的Web服務器。Tomcat Manager根據(jù)管理的對象不同,提供了6種常用的角色,分別是:manager-gui,manager-status,manager-script和manager-jmx、admin-gui、admin-script。
3 Tomcat下用戶角色配置及應用
3.1 Realm(域)
Tomcat使用Realm來實現(xiàn)對特定資源進行訪問權限的設定,Realm類似于某些系統(tǒng)中的Role(角色)或Group(組),對應著一定的系統(tǒng)資源。
Tomcat提供3種Realm,通過不同渠道和方式來驗證訪問部署在服務器上的某個web應用的用戶是否具有指定的權限。
JDBCRealm用來將用戶信息保存在數(shù)據(jù)庫了,通過JDBC純Java驅動訪問數(shù)據(jù)庫的方式獲取用戶信息,包括角色、用戶名及密碼的關聯(lián)信息,并進行驗證。
JNDIRealm則將用戶信息保存在基于LDAP(輕量級目錄訪問協(xié)議)等目錄服務的服務器中,通過JNDI(Java命名和目錄接口)提供的API從LDAP服務器中獲取用戶信息并驗證。
MemoryRealm則是實現(xiàn)方式最簡單一種。Memory Realm把用戶信息保存在\conf\tomcat-users.xml文件中;在對用戶進行驗證時,將會從tomcat-users.xml中提取用戶信息。Host Manager和Manager App使用此種Realm。
3.2 MemoryRealm具體實現(xiàn)
在tomcat-user.xml文件中并沒有默認的角色和用戶信息,所有的角色和用戶信息都用“<!-- -->”進行了注釋。其中“manager-gui”角色用來操作/manager/html目錄下的web應用程序,如果操作者需要使用這個應用,則需要定義一個指定角色為manager-gui,并包含用戶名和密碼的用戶。而這個用戶盡可能的不要使用在該xml文檔中注釋過的用戶名,因為這些用戶信息有可能和tomcat提供的web應用案例中的用戶信息混淆。
3.3 角色應用
tomcat-users.xml文件設置了角色,使用這些角色名和權限的前提條件是在包含它們的/webapps目錄下的某個web應用的web.xml中聲明。在對應的web.xml文件中,auth-constraint元素下的role-name子元素起到了對tomcat-user.xml文件定義的角色信息進行調用的職責?梢酝ㄟ^一個或多個role-name子元素調用所需的角色,也可以通過指定
根據(jù)tomcat在/webapps目錄下提供的host-manager和manager做用戶角色應用的進一步研究。在host-manager的web.xml中的
4 總結
Tomcat作為一款靈巧的HTTP服務器,目前為止已經(jīng)推出了第9版,支持Java8及后續(xù)版本,而現(xiàn)階段使用量最多的8.0.x版和8.5.x版,支持Java7及后續(xù)版本。然后版本的更替并沒有使得tomcat中用戶角色和權限的配置改變其原有的地位和重要性,換句話說,只要tomcat包含Manager App和Host Manager兩款web“原生”應用,用戶權限則一直會是一個需要研究和討論的議題。
參考文獻
[1]維基百科Apache Tomcat.[EB/OL].http://zh.wikipedia.org/wiki/Apache_Tomcat,2013,6.
[2]孫衛(wèi)琴.Tomcat與Java Web開發(fā)技術詳解(第2版)[M].電子工業(yè)出版社,2009,1.
[3]Budi Kurniawan著,曹旭東譯.深入剖析Tomcat[M].機械工業(yè)出版社,2012,1.
[4]Tomcat官方文檔.Apache Tomcat Versions.[EB/OL].http://tomcat.apache.org/whichversion.html,2017,6.
熱點文章閱讀