WEB應用中的身份驗證(1)--基本身份驗證BASIC authorization method
Posted on 2011-03-22 18:33 瘋狂 閱讀(1771) 評論(0) 編輯 收藏 所屬分類: java 、java安全在任何一種WEB應用開發中,不論大中小規模的,每個開發者都會遇到一些需要保護程序數據的問題,涉及到用戶的LOGIN ID和PASSWORD。那么如何執行驗證方式更好呢?實際上,有很多方式來實現。在本文里,我們不會把所有的驗證方法都考慮到,我們的目的是讓你學會如何以最簡單最方便的驗證方法來完成。下面將討論基本驗證方式之一(BASIC authorization method)
要搭建整個流程需要四個階段:
一、建立測試用數據庫
我們這里用Mysql進行測試,其他數據庫完全一樣。
1、創建用戶表
CREATE TABLE users (
id int(11) NOT NULL auto_increment,
username varchar(20) NOT NULL,
password varchar(20) NOT NULL,
PRIMARY KEY (id)
)
2、創建權限表(此事例中用不到)
CREATE TABLE roles(
id int(11) NOT NULL auto_increment,
rolename varchar(20) NOT NULL,
PRIMARY KEY (id)
)
3、創建用戶-權限對應表
CREATE TABLE user_roles (
id int(11) NOT NULL auto_increment,
username varchar(20) NOT NULL,
rolename varchar(20) NOT NULL,
PRIMARY KEY (id)
)
4、插入數據
insert into users(username,password) values('zhangdongyu', 'loveyuanyuan')
insert into roles(rolename) values('manager')
insert into user_roles(username,rolename) values('zhangdongyu', 'manager')
二、修改${tomcat}\conf\server.xml
找到
<!--
<Realm className="org.apache.catalina.realm.MemoryRealm" />
-->
在上面這句話下面添加一下內容:
<Realm
className="org.apache.catalina.realm.JDBCRealm"
debug="99"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/weblogin" <!--數據庫連接地址-->
connectionName="root" <!--數據庫用戶名-->
connectionPassword="123" <!--數據庫密碼-->
userTable="users" <!--用戶表-->
userNameCol="username" <!--用戶名列-->
userCredCol="password" <!--密碼列-->
userRoleTable="user_roles" <!--用戶權限對應表-->
roleNameCol="rolename" <!--權限列-->
/>
三、創建工程
在Eclipse創建一個web工程sercurityTest,在WebRoot下面創建一個文件夾admin(也可在里面建立幾個文件)
在web.xml文件中添加以下片段:
<security-constraint>
<web-resource-collection>
<web-resource-name>Web Demo</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Web Demo</realm-name>
</login-config>
四、重啟Tomcat,使設置生效
總結測試:
通過上面的四部分配置,當你再次訪問程序中受保護的地址,如:http://localhost/sercurityTest/admin時
會彈出驗證對話框,讓你輸入用戶名和密碼,只有輸入庫中的用戶名密碼并且該用戶有manager權限時才能進
入受保護目錄。
轉載自:http://blog.csdn.net/swengineer/archive/2006/12/01/1424020.aspx