<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 14,  comments - 37,  trackbacks - 0

    剛剛接觸Struts Menu的時(shí)候,對(duì)Struts Menu基于角色的菜單顯示很好理解,但是如何將web應(yīng)用中的角色管理映射到Struts Menu中,是困擾筆者良久的問(wèn)題。經(jīng)過(guò)摸索,在查閱了Tomcat的手冊(cè)之后,筆者找到了答案。

     

     

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

     

     

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

     

     

    Tomcat中定義的Realm有如下幾種實(shí)現(xiàn):UserDatabaseRealmJDBCRealmJNDIRealmJAASRealm。下載Tomcat解壓縮后默認(rèn)使用的是UserDatabaseRealm。該Realm%CATALINA_HOME%/conf/tomcat-users.xml靜態(tài)文件中加載內(nèi)存,Tomcat運(yùn)行期間不會(huì)動(dòng)態(tài)加載。因此所有的用戶、角色和密碼都是在Tomcat啟動(dòng)之前配置好的,只存在于內(nèi)存中。修改tomcat-users.xml文件后必須重新啟動(dòng)Tomcat,該文件的具體配置請(qǐng)參考Tomcat手冊(cè)。

     

     

    本文要著重介紹的是JDBCRealm,該Realm使用關(guān)系數(shù)據(jù)庫(kù),能夠動(dòng)態(tài)訪問(wèn)數(shù)據(jù)。用戶、角色和密碼都保存在數(shù)據(jù)庫(kù)中,一旦數(shù)據(jù)庫(kù)有變化,JDBCRealm會(huì)立即訪問(wèn)。相應(yīng),JDBCRealm的設(shè)置需要數(shù)據(jù)庫(kù)的訪問(wèn)參數(shù)。Tomcat5.0.28中給出了幾種數(shù)據(jù)庫(kù)的配置參數(shù),示例如下:

     

     

    <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" />

     

     

     

     

     

    屬性說(shuō)明如下:

    className是實(shí)現(xiàn)Realm的類名,對(duì)于JDBCRealm必須是org.apache.catalina.realm.JDBCRealm

     

     

    debug設(shè)置調(diào)試信息的詳細(xì)程度等級(jí),0表示不調(diào)試,數(shù)字越大越詳細(xì)。

     

     

    digest是數(shù)據(jù)庫(kù)中密碼字段的加密摘要算法名稱,有SHAMD2MD5,默認(rèn)是cleartext,即不加密。

     

     

    driverName是數(shù)據(jù)庫(kù)訪問(wèn)的JDBC驅(qū)動(dòng)

     

     

    connectionURL是數(shù)據(jù)庫(kù)訪問(wèn)URL參數(shù)

     

     

    connectionNameconnectionPassword是訪問(wèn)數(shù)據(jù)庫(kù)的名稱和密碼

    userTableweb應(yīng)用中存儲(chǔ)用戶信息的表名

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

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

    userRoleTable是將用戶角色映射表名

    roleNameCol是角色表中存儲(chǔ)角色名稱的字段名

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

    posted on 2007-07-11 10:12 冰封的愛(ài) 閱讀(136) 評(píng)論(0)  編輯  收藏 所屬分類: J2EE
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(3)

    隨筆檔案

    文章分類

    文章檔案

    相冊(cè)

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 青青视频免费在线| 亚洲精品久久久www| 久久亚洲AV无码精品色午夜麻| 四虎影视久久久免费观看| 国产成人免费高清在线观看| 精品久久亚洲一级α| 国产免费私拍一区二区三区| 在线视频亚洲一区| 亚洲高清国产拍精品青青草原 | 亚洲一区二区精品视频| 免费无码专区毛片高潮喷水| 亚洲国产午夜福利在线播放| 国产免费久久精品99久久| 亚洲成A人片777777| 6080午夜一级毛片免费看| 亚洲第一成人在线| 成在线人永久免费视频播放| 曰批全过程免费视频免费看| 亚洲一区日韩高清中文字幕亚洲 | 亚洲国产一区在线观看| 成人超污免费网站在线看| 毛片亚洲AV无码精品国产午夜| 亚洲精品第一国产综合境外资源 | 91成年人免费视频| 亚洲av无一区二区三区| 中文字幕中韩乱码亚洲大片| 日本一卡精品视频免费| 在线观看日本亚洲一区| 免费二级毛片免费完整视频| 免费国产在线视频| 亚洲人av高清无码| 亚洲人成网站在线观看播放| 午夜性色一区二区三区免费不卡视频 | 无码区日韩特区永久免费系列| 亚洲精品天堂成人片AV在线播放| 亚洲日韩中文在线精品第一| 99免费视频观看| 产传媒61国产免费| 亚洲午夜一区二区电影院| 亚洲午夜国产片在线观看| 精品国产污污免费网站aⅴ|