posts - 37,  comments - 53,  trackbacks - 0

          這幾天要用到一個簡單的權限管理,本來想用struts-Menu簡單搞定,但是很是郁悶的是不知道怎么樣將tomcat的角色應用到struts-menu中,在網上搜了好久,終于在www.yahoo.com.cn中找了不知道是那位大俠的文章,在此感謝了,也希望能給他人方便,特轉貼到此:

          剛剛接觸Struts Menu的時候,對Struts Menu基于角色的菜單顯示很好理解,但是如何將Web應用中的角色管理映射到Struts Menu中,是困擾筆者良久的問題。經過摸索,在查閱了Tomcat的手冊之后,筆者找到了答案。

          ?

          Servlet容器和web應用都可以控制web應用資源的安全,因此Tomcat管理域有容器管理和應用程序管理兩種,默認使用容器管理。通常web應用中使用的登陸Servlet和JSP則是應用程序管理。這就涉及到Realm的概念。

          ?

          Tomcat在%CATALINA_HOME%/conf/server.XML文件中配置Realm,結合在%CATALINA_HOME%/WEB-INF/mywebapp/web.xml文件中配置的<security-constraint>,定義了存儲用戶和角色的信息,以及進行用戶驗證的方式。

          ?

          Tomcat中定義的Realm有如下幾種實現:UserDatabaseRealm、JDBCRealm、JNDIRealm和JAASRealm。下載Tomcat解壓縮后默認使用的是UserDatabaseRealm。該Realm從%CATALINA_HOME%/conf/tomcat-users.xml靜態文件中加載內存,Tomcat運行期間不會動態加載。因此所有的用戶、角色和密碼都是在Tomcat啟動之前配置好的,只存在于內存中。修改tomcat-users.xml文件后必須重新啟動Tomcat,該文件的具體配置請參考Tomcat手冊。

          ?

          本文要著重介紹的是JDBCRealm,該Realm使用關系數據庫,能夠動態訪問數據。用戶、角色和密碼都保存在數據庫中,一旦數據庫有變化,JDBCRealm會立即訪問。相應,JDBCRealm的設置需要數據庫的訪問參數。Tomcat5.0.28中給出了幾種數據庫的配置參數,示例如下:

          ?

          <Realm? className="org.apache.catalina.realm.JDBCRealm"

          ?

          debug="99" digest="MD5"

          ?

          ???????????? driverName="Oracle.jdbc.driver.OracleDriver"

          ?

          ????????? connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"

          ?

          ???????? connectionName="scott" connectionPassword="tiger"

          ?

          ????????????? userTable="users" userNameCol="user_name" userCredCol="user_pass"

          ?

          ????????? userRoleTable="user_roles" roleNameCol="role_name" />

          ?

          ?

          ?

          屬性說明如下:

          className是實現Realm的類名,對于JDBCRealm必須是org.apache.catalina.realm.JDBCRealm。

          ?

          debug設置調試信息的詳細程度等級,0表示不調試,數字越大越詳細。

          ?

          digest是數據庫中密碼字段的加密摘要算法名稱,有SHA、MD2或MD5,默認是cleartext,即不加密。

          ?

          driverName是數據庫訪問的JDBC驅動

          ?

          connectionURL是數據庫訪問URL參數

          ?

          connectionName和connectionPassword是訪問數據庫的名稱和密碼

          userTable是web應用中存儲用戶信息的表名

          userNameCol是用戶信息表中存儲用戶登陸名稱的字段名

          userCredCol是用戶信息表中存儲用戶登陸密碼的字段名

          userRoleTable是將用戶角色映射表名

          roleNameCol是角色表中存儲角色名稱的字段名

          有了這些定義,web應用中定義的用戶和角色就可以在Struts Menu中,用于配置基于角色可見與否的菜單。

          ?

          posted on 2006-04-12 10:26 雪地孤鴻 閱讀(791) 評論(0)  編輯  收藏 所屬分類: STRUTS

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2006年4月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(17)

          隨筆分類

          隨筆檔案

          文章檔案

          blog

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 延津县| 兴和县| 蓬溪县| 临夏县| 瑞安市| 高邑县| 灌阳县| 盘锦市| 绥江县| 阳江市| 昌黎县| 岢岚县| 喀喇沁旗| 利津县| 大安市| 商河县| 辽宁省| 太原市| 左云县| 宣威市| 泸州市| 宿迁市| 鲜城| 静宁县| 申扎县| 金山区| 甘孜县| 京山县| 平定县| 马龙县| 炎陵县| 万荣县| 太谷县| 乐至县| 墨脱县| 鸡泽县| 高尔夫| 临猗县| 彩票| 磴口县| 准格尔旗|