瘋狂

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

          日歷

          <2011年3月>
          272812345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          公告

          公眾號:
          QQjava交流群:51374316



          相冊

          搜索

          •  

          積分與排名

          • 積分 - 2841303
          • 排名 - 2

          最新隨筆

          在任何一種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
          主站蜘蛛池模板: 花莲市| 泗洪县| 大同市| 阜新| 谢通门县| 黄平县| 南平市| 旬阳县| 广昌县| 商洛市| 石柱| 阜宁县| 广水市| 绥江县| 鹿泉市| 卢龙县| 东安县| 邵武市| 乌拉特中旗| 汉中市| 刚察县| 师宗县| 新化县| 厦门市| 宝坻区| 全州县| 平远县| 通州市| 江华| 崇左市| 双鸭山市| 景东| 深圳市| 搜索| 诏安县| 平果县| 喀喇沁旗| 咸丰县| 汉中市| 阿荣旗| 舒兰市|