瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          在任何一種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(也可在里面建立幾個文件)


            Eclipse截圖


            在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
          主站蜘蛛池模板: 汝城县| 如东县| 宁夏| 临夏市| 黑山县| 金塔县| 那坡县| 克什克腾旗| 安康市| 庐江县| 罗平县| 革吉县| 香港 | 丰顺县| 内乡县| 聂拉木县| 贡觉县| 剑川县| 紫阳县| 简阳市| 四会市| 金川县| 万安县| 金寨县| 房山区| 丽江市| 肥东县| 尚志市| 同德县| 天长市| 北辰区| 韶山市| 深泽县| 新密市| 弥勒县| 高碑店市| 大田县| 秭归县| 芦山县| 隆尧县| 交城县|