隨筆-11  評(píng)論-16  文章-1  trackbacks-0

          第一章 安裝

           

           

          Metadmin 細(xì)粒度權(quán)限管理產(chǎn)品,將分散在系統(tǒng)各處的權(quán)限判斷代碼,集中起來統(tǒng)一管理;并提供權(quán)限設(shè)計(jì)器,通過界面設(shè)計(jì),而不是編程或者書寫 XML 配置的方式,達(dá)到各種細(xì)粒度控制目的。

           

          Metadmin 是中間件,不是系統(tǒng)框架。安裝過程非常簡(jiǎn)單,可以分為 2 個(gè)部分:

          1.         library jar 包安裝;

          2.         web 包安裝;

          3.         用戶元數(shù)據(jù)安裝。

           

          下面以 eclipse 為例,開始構(gòu)建第一個(gè)例子。

          下載

          先到網(wǎng)站下載 metadmin.zip ,下載地址: www.metadmin.com 。將 metadmin.zip 解壓到 metadmin 目錄。

          目錄結(jié)構(gòu)如圖示:

          ( metadmin 目錄結(jié)構(gòu))

          安裝

          在 eclipse 創(chuàng)建 FirstMetadmin web 工程( Metadmin 支持 jdk1.4+ )。

          library jar 包安裝

          將 lib 復(fù)制到 FirstMetadmin 工程根目錄,然后添加到 Java Build Path 和 Java EE Module Dependencies 。

          web 包安裝

          將 WebContent 目錄下所有文件復(fù)制到 FirstMetadmin 的 WebContent 目錄下。

          打開 web.xml ,修改第 28 行的 org.back.servlet.StartupServlet 的 repositoryDir 參數(shù)值,改為將保存權(quán)限策略地址。比如:e:\FirstMetadmin\xml 。

           

          安裝過程基本完畢,現(xiàn)在開始把數(shù)據(jù)庫配置好,并創(chuàng)建基本 Metadmin 數(shù)據(jù)庫表。

          權(quán)限數(shù)據(jù)表

          Metadmin 需要訪問兩類數(shù)據(jù)庫數(shù)據(jù)。

          1.         權(quán)限管理數(shù)據(jù),這些數(shù)據(jù)由 Metadmin 維護(hù),例如權(quán)限、角色、授權(quán)策略等。

          2.         業(yè)務(wù)數(shù)據(jù),這些數(shù)據(jù)由業(yè)務(wù)系統(tǒng)維護(hù), Metadmin 只需要讀取相關(guān)數(shù)據(jù)來進(jìn)行權(quán)限判斷。

           

          強(qiáng)烈建議創(chuàng)建 metadmin schema 以保存權(quán)限管理數(shù)據(jù),和業(yè)務(wù)數(shù)據(jù)分開。

           

          將解壓的 Metadmin 目錄下 sql 文件,在 metadmin schema 下執(zhí)行,創(chuàng)建 4 張表。

          配置 datasources.xml

          WEB-INF/metadmin/datasources.xml 表明 metadmin 怎樣連接數(shù)據(jù)庫。連接方式有:

          1.         apache dbcp 模式;

          2.         jndi 模式;

          3.         開發(fā)者自己編程托管模式。

          具體配置方式,參考《用戶手冊(cè)》 http://www.metadmin.com/doc/main.html#數(shù)據(jù)源 2.6

           

          默認(rèn)提供了 dbcp 模式,而且連接的數(shù)據(jù)庫是 mysql 。權(quán)限數(shù)據(jù)保存在 metadmin schema 下,業(yè)務(wù)數(shù)據(jù)在 mydemo schema 下。

           

          <datasource name="demo" configFile="mysql.properties" schemas="mydemo, metadmin"/>

          name=”demo” ,名字可以是不同于 metadmin 的任意字符串。

          schemas=”mydemo, metadmin” ,表示當(dāng)打開前臺(tái)數(shù)據(jù)查詢?cè)O(shè)計(jì)器時(shí),只加載 mydemo 和 metadmin schema 下表和視圖。配置該選項(xiàng)的目的是,為了在數(shù)據(jù)庫有很多 schema 情況下,加快 web 頁面加載速度。

          用戶元數(shù)據(jù)安裝

          用戶元數(shù)據(jù)是通過 XML 文件安裝到 metadmin 系統(tǒng), metadmin 還會(huì)根據(jù)該文件創(chuàng)建相關(guān)權(quán)限表格。

          比如業(yè)務(wù)系統(tǒng)的用戶表信息如下:

           

          Sql代碼 
          1. --用戶信息表  
          2. create table demoUser (  
          3.        id integer NOT NULL,  
          4.        loginName varchar(30) NOT NULL unique,  
          5.        name varchar(30),  
          6.        password varchar(30),  
          7.        companyId integer,  
          8.        departmentId integer,  
          9.        isManager integer,  
          10.        primary key(id) );  
          11. --用戶信息視圖,關(guān)聯(lián)company表獲取公司級(jí)別信息  
          12. CREATE VIEW UserView AS  
          13.   select u.*,c.companyLevel from demoUser u, company c  
          14.   where u.companyId=c.id;  
           

           

           

          該系統(tǒng)的用戶元數(shù)據(jù)信息應(yīng)該是這樣的:

           

          Xml代碼 
          1. <?xml version="1.0" encoding="gbk"?>  
          2. <user>  
          3.        <table ds="mydemo" name="mainTable" sqlName="UserView" uniqueFields="loginName">  
          4.               <field name="id" columnName="id" sqlType="int" javaType="java.lang.Integer"  
          5.                      displayName="ID" show="true" />  
          6.               <field name="name" columnName="name" sqlType="varchar(40)"  
          7.                      javaType="java.lang.String" displayName="姓名" show="true" />  
          8.               <field name="loginName" columnName="loginName" sqlType="varchar(40)"  
          9.                      javaType="java.lang.String" displayName="登錄名" />  
          10.               <field name="password" columnName="password" sqlType="varchar(40)"  
          11.                      javaType="java.lang.String" />  
          12.               <field name="isManager" columnName="isManager" sqlType="int"  
          13.                      javaType="java.lang.Boolean" />  
          14.               <field name="companyId" columnName="companyId" sqlType="int"  
          15.                      javaType="java.lang.Integer" />  
          16.               <field name="departmentId" columnName="departmentId" sqlType="int"  
          17.                      javaType="java.lang.Integer" />  
          18.               <field name="companyLevel" columnName="companyLevel" sqlType="int"  
          19.                      javaType="java.lang.Integer" />  
          20.        </table>  
          21. </user>  
           

           

           

          注: name 屬性等于 id 和 name 的兩個(gè) field 配置必須存在,一個(gè)表示用戶標(biāo)識(shí),另一個(gè)表示用戶名稱。

          table 的屬性描述如下:

          ds ,數(shù)據(jù)源名稱,就是 datasources.xml 里面的業(yè)務(wù)數(shù)據(jù)源名稱;

          name ,該屬性目前必須是 mainTable ,不能改動(dòng);

          sqlName ,用戶表名稱,可以是視圖;

          uniqueFields ,用戶表哪些字段是唯一的,可以是多個(gè)字段的組合。一般情況下 id 信息是業(yè)務(wù)無意義的, uniqueFields 字段具有業(yè)務(wù)意義。 metadmin 支持輸入 uniqueFields 字段對(duì)應(yīng)的值,自動(dòng)從數(shù)據(jù)庫中查找匹配用戶。

           

          啟動(dòng) tomcat 服務(wù)器,在瀏覽器輸入地址: http://localhost:8080/FirstMetadmin/metadmin/userTypeMng ,通過該地址安裝用戶元數(shù)據(jù)文件。

           

          至此,所有 Metadmin 安裝工作已經(jīng)完成。可以打開權(quán)限設(shè)計(jì)器進(jìn)行權(quán)限管理工作,設(shè)計(jì)器地址:http://localhost:8080/FirstMetadmin/metadmin/designer

          設(shè)計(jì)器如圖示:  

          相關(guān)配置文件下載

          posted on 2009-06-16 11:16 細(xì)粒度權(quán)限管理 閱讀(1277) 評(píng)論(1)  編輯  收藏

          評(píng)論:
          # re: 《玩轉(zhuǎn)細(xì)粒度權(quán)限管理》 一,安裝 2009-06-23 10:02 | 找個(gè)美女做老婆
          Java樂園技術(shù)交流,http://www.javaly.cn
          2群群號(hào):28840096  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 宿松县| 永昌县| 正安县| 双流县| 通渭县| 伊吾县| 湘潭县| 闻喜县| 阳山县| 称多县| 五指山市| 当雄县| 富平县| 阳曲县| 霸州市| 交城县| 建平县| 塔河县| 法库县| 黄骅市| 巴楚县| 南川市| 宝丰县| 永康市| 嘉义市| 元阳县| 招远市| 鞍山市| 老河口市| 镇雄县| 东宁县| 安岳县| 明水县| 义马市| 乌什县| 高阳县| 遂昌县| 铜陵市| 永安市| 鸡西市| 灌南县|