tomcat安全机制j_security_check(简单版)
2019獨角獸企業重金招聘Python工程師標準>>>
參考: http://www.blogjava.net/asktalk/archive/2005/07/23/8221.html
在web應用中,對頁面的訪問控制通常通過程序來控制,流程為:
登錄 → 設置session → 訪問受限頁面時檢查session是否存在,如果不存在,禁止訪問
對于較小型的web應用,可以通過tomcat內置的訪問控制機制來實現權限控制。采用這種機制的好處是,程序中無需進行權限控制,完全通過對tomcat的配置即可完成訪問控制。
實現:在用戶訪問受限頁面時,如果用戶沒有登陸則自動跳轉到登陸頁面,只有通過登陸驗證有權限的用戶可以訪問受限資源。
下面講如何配置使用:
1.為了在tomcat頁面設置訪問權限控制,在項目的WEB-INF/web.xml文件中,進行如下設置:
<security-constraint><!--1.被保護的資源 --><web-resource-collection><web-resource-name>testLogin</web-resource-name><url-pattern>/protected/*</url-pattern></web-resource-collection><!--2.有權限的角色 --><auth-constraint><role-name>tian</role-name></auth-constraint></security-constraint><!-- 3.登錄方式 --><login-config><auth-method>FORM</auth-method><form-login-config><form-login-page>/login.jsp</form-login-page><form-error-page>/error.jsp</form-error-page></form-login-config></login-config>其中,<url-pattern>中指定受保護的url,可以使用通配符*,通常對整個目錄進行訪問權限控制。(例子中指在protected目錄下的所有文件都被保護);
<auth-constraint>中指定哪些角色可以訪問<url-pattern>指定的url,在<role-name>中可以設置一個或多個角色名。(例子中角色名為tian的角色有訪問權限)。
?
2.使用的角色名來自tomcat的配置文件${CATALINA_HOME}/conf/tomcat-users.xml。 如下所示:
<tomcat-users><role rolename="tomcat"/><role rolename="tian"/><role rolename="manager"/><user name="admin" password="admin" roles="tian,tomcat,manager" /><user name="tian" password="tian" roles="tian,manager" /></tomcat-users>其中,<role rolename="tian"/>指角色名為tian;
<user name="admin" password="admin" roles="tian,tomcat,manager" />指通過登錄名admin和密碼admin登陸的用戶擁有tian,tomcat,manager這3個角色的權限。
所用角色名也可以自己配置,使用Realm,可以從數據庫中獲取,下篇《在tomcat中使用Realm》再講。
?
3.<login-config>用來設置登錄方式;
<auth-method>的取值為BASIC與FORM。如果為BASIC,瀏覽器在需要登錄時彈出一個登錄窗口。如果為FORM方式,需要指定登錄頁面和登錄失敗時的提示信息顯示頁面。(例子中使用的登陸方式為FROM表單登陸)
其中的<form-login-page>指定登錄頁面url,<form-error-page>指定登錄失敗時的提示頁面url。
登錄頁面中,form的action,以及其中的用戶名和密碼兩個參數的名稱,都應取固定的值。登錄的后臺處理程序為j_security_check;用戶名和密碼的參數名稱分別為:j_username和j_password。
如下是登錄頁面(如:login.jsp)的一段示例代碼:
而BASIC的配置如下:
<login-config> <auth-method>BASIC</auth-method> </login-config>?
轉載于:https://my.oschina.net/u/2351298/blog/783967
總結
以上是生活随笔為你收集整理的tomcat安全机制j_security_check(简单版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022年全球智能手表品牌排名:华为第三
- 下一篇: spark2.0.1安装部署及使用jdb