為tomcat頁(yè)面設(shè)置訪問(wèn)權(quán)限
CSDN網(wǎng)址:http://blog.csdn.net/fasttalk
剛從CSDN搬到這里,先發(fā)表一篇!
在web應(yīng)用中,對(duì)頁(yè)面的訪問(wèn)控制通常通過(guò)程序來(lái)控制,流程為:
登錄 -> 設(shè)置session -> 訪問(wèn)受限頁(yè)面時(shí)檢查session是否存在,如果不存在,禁止訪問(wèn)
對(duì)于較小型的web應(yīng)用,可以通過(guò)tomcat內(nèi)置的訪問(wèn)控制機(jī)制來(lái)實(shí)現(xiàn)權(quán)限控制。采用這種機(jī)制的好處是,程序中無(wú)需進(jìn)行權(quán)限控制,完全通過(guò)對(duì)tomcat的配置即可完成訪問(wèn)控制。
為了在tomcat頁(yè)面設(shè)置訪問(wèn)權(quán)限控制,在項(xiàng)目的WEB-INFO/web.xml文件中,進(jìn)行如下設(shè)置:
其中,<url-pattern>中指定受限的url,可以使用通配符*,通常對(duì)整個(gè)目錄進(jìn)行訪問(wèn)權(quán)限控制。
<auth-constraint>中指定哪些角色可以訪問(wèn)<url-pattern>指定的url,在<role-name>中可以設(shè)置一個(gè)或多個(gè)角色名。
使用的角色名來(lái)自tomcat的配置文件${CATALINA_HOME}/conf/tomcat-users.xml。
<login-config>中設(shè)置登錄方式,<auth-method>的取值為BASIC或FORM。如果為BASIC,瀏覽器在需要登錄時(shí)彈出一個(gè)登錄窗口。如果為FORM方式,需要指定登錄頁(yè)面和登錄失敗時(shí)的提示信息顯示頁(yè)面。
使用FORM方式的配置樣例如下:
其中的<form-login-page>指定登錄頁(yè)面url,<form-error-page>指定登錄失敗時(shí)的提示頁(yè)面url。
登錄頁(yè)面中,form的action,以及其中的用戶名和密碼兩個(gè)參數(shù)的名稱,都應(yīng)取固定的值。登錄的后臺(tái)處理程序?yàn)?SPAN lang=EN-US>j_security_check;用戶名和密碼的參數(shù)名稱分別為:j_username和j_password。
如下是登錄頁(yè)面(如:login.jsp)的一段示例代碼: