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

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

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

    隨筆-11  評論-16  文章-1  trackbacks-0

    第一章 安裝

     

     

    Metadmin 細粒度權限管理產品,將分散在系統各處的權限判斷代碼,集中起來統一管理;并提供權限設計器,通過界面設計,而不是編程或者書寫 XML 配置的方式,達到各種細粒度控制目的。

     

    Metadmin 是中間件,不是系統框架。安裝過程非常簡單,可以分為 2 個部分:

    1.         library jar 包安裝;

    2.         web 包安裝;

    3.         用戶元數據安裝。

     

    下面以 eclipse 為例,開始構建第一個例子。

    下載

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

    目錄結構如圖示:

    ( metadmin 目錄結構)

    安裝

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

    library jar 包安裝

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

    web 包安裝

    將 WebContent 目錄下所有文件復制到 FirstMetadmin 的 WebContent 目錄下。

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

     

    安裝過程基本完畢,現在開始把數據庫配置好,并創建基本 Metadmin 數據庫表。

    權限數據表

    Metadmin 需要訪問兩類數據庫數據。

    1.         權限管理數據,這些數據由 Metadmin 維護,例如權限、角色、授權策略等。

    2.         業務數據,這些數據由業務系統維護, Metadmin 只需要讀取相關數據來進行權限判斷。

     

    強烈建議創建 metadmin schema 以保存權限管理數據,和業務數據分開。

     

    將解壓的 Metadmin 目錄下 sql 文件,在 metadmin schema 下執行,創建 4 張表。

    配置 datasources.xml

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

    1.         apache dbcp 模式;

    2.         jndi 模式;

    3.         開發者自己編程托管模式。

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

     

    默認提供了 dbcp 模式,而且連接的數據庫是 mysql 。權限數據保存在 metadmin schema 下,業務數據在 mydemo schema 下。

     

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

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

    schemas=”mydemo, metadmin” ,表示當打開前臺數據查詢設計器時,只加載 mydemo 和 metadmin schema 下表和視圖。配置該選項的目的是,為了在數據庫有很多 schema 情況下,加快 web 頁面加載速度。

    用戶元數據安裝

    用戶元數據是通過 XML 文件安裝到 metadmin 系統, metadmin 還會根據該文件創建相關權限表格。

    比如業務系統的用戶表信息如下:

     

    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. --用戶信息視圖,關聯company表獲取公司級別信息  
    12. CREATE VIEW UserView AS  
    13.   select u.*,c.companyLevel from demoUser u, company c  
    14.   where u.companyId=c.id;  
     

     

     

    該系統的用戶元數據信息應該是這樣的:

     

    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 的兩個 field 配置必須存在,一個表示用戶標識,另一個表示用戶名稱。

    table 的屬性描述如下:

    ds ,數據源名稱,就是 datasources.xml 里面的業務數據源名稱;

    name ,該屬性目前必須是 mainTable ,不能改動;

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

    uniqueFields ,用戶表哪些字段是唯一的,可以是多個字段的組合。一般情況下 id 信息是業務無意義的, uniqueFields 字段具有業務意義。 metadmin 支持輸入 uniqueFields 字段對應的值,自動從數據庫中查找匹配用戶。

     

    啟動 tomcat 服務器,在瀏覽器輸入地址: http://localhost:8080/FirstMetadmin/metadmin/userTypeMng ,通過該地址安裝用戶元數據文件。

     

    至此,所有 Metadmin 安裝工作已經完成。可以打開權限設計器進行權限管理工作,設計器地址:http://localhost:8080/FirstMetadmin/metadmin/designer

    設計器如圖示:  

    相關配置文件下載

    posted on 2009-06-16 11:16 細粒度權限管理 閱讀(1281) 評論(1)  編輯  收藏

    評論:
    # re: 《玩轉細粒度權限管理》 一,安裝 2009-06-23 10:02 | 找個美女做老婆
    Java樂園技術交流,http://www.javaly.cn
    2群群號:28840096  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲无码黄色网址| 暖暖免费高清日本一区二区三区| 亚洲日本中文字幕天堂网| 亚洲日产乱码一二三区别| 在线观看的免费网站| 亚洲jizzjizz在线播放久| 国产在线观看免费观看不卡| 2020国产精品亚洲综合网 | 亚洲第一页在线视频| 另类免费视频一区二区在线观看| 亚洲精品制服丝袜四区| 最近中文字幕免费大全| 亚洲日韩精品射精日| 日韩午夜理论免费TV影院| 亚洲日本视频在线观看| 性一交一乱一视频免费看| jizzjizz亚洲日本少妇| 中文亚洲AV片在线观看不卡| 免费在线观影网站| 亚洲精品乱码久久久久久下载| 国产福利在线观看免费第一福利| 亚洲精品乱码久久久久久V | 暖暖免费高清日本一区二区三区| 在线观看亚洲电影| 亚洲中文字幕无码久久2017| 久久久久久久岛国免费播放| 亚洲a视频在线观看| 免费很黄很色裸乳在线观看| 三上悠亚电影全集免费| 亚洲福利视频网站| 日本高清免费不卡在线| 久久久久女教师免费一区| 亚洲狠狠ady亚洲精品大秀| 成人爱做日本视频免费| 国产成年无码久久久免费| 亚洲精品中文字幕乱码影院| 免费一级特黄特色大片在线观看| 久久这里只精品热免费99| 亚洲最大无码中文字幕| 亚洲欧洲∨国产一区二区三区| 67194熟妇在线永久免费观看|