剛從CSDN搬到這里,先發(fā)表一篇!
在web應用中,對頁(yè)面的訪(fǎng)問(wèn)控制通常通過(guò)程序來(lái)控制,流程為:
登錄 -> 設置session -> 訪(fǎng)問(wèn)受限頁(yè)面時(shí)檢查session是否存在,如果不存在,禁止訪(fǎng)問(wèn)
對于較小型的web應用,可以通過(guò)tomcat內置的訪(fǎng)問(wèn)控制機制來(lái)實(shí)現權限控制。采用這種機制的好處是,程序中無(wú)需進(jìn)行權限控制,完全通過(guò)對tomcat的配置即可完成訪(fǎng)問(wèn)控制。
為了在tomcat頁(yè)面設置訪(fǎng)問(wèn)權限控制,在項目的WEB-INFO/web.xml文件中,進(jìn)行如下設置:
其中,<url-pattern>中指定受限的url,可以使用通配符*,通常對整個(gè)目錄進(jìn)行訪(fǎng)問(wèn)權限控制。
<auth-constraint>中指定哪些角色可以訪(fǎng)問(wèn)<url-pattern>指定的url,在<role-name>中可以設置一個(gè)或多個(gè)角色名。
使用的角色名來(lái)自tomcat的配置文件${CATALINA_HOME}/conf/tomcat-users.xml。
<login-config>中設置登錄方式,<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,以及其中的用戶(hù)名和密碼兩個(gè)參數的名稱(chēng),都應取固定的值。登錄的后臺處理程序為j_security_check;用戶(hù)名和密碼的參數名稱(chēng)分別為:j_username和j_password。
如下是登錄頁(yè)面(如:login.jsp)的一段示例代碼:
聯(lián)系客服