《玩转细粒度权限管理》 一,安装

 

 

第一章 安装

 

 

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 PathJava EE Module Dependencies

web 包安装

WebContent 目录下所有文件复制到 FirstMetadminWebContent 目录下。

打开 web.xml ,修改第 28 行的 org.back.servlet.StartupServletrepositoryDir 参数值,改为将保存权限策略地址。比如: 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” ,表示当打开前台数据查询设计器时,只加载 mydemometadmin schema 下表和视图。配置该选项的目的是,为了在数据库有很多 schema 情况下,加快 web 页面加载速度。

用户元数据安装

用户元数据是通过 XML 文件安装到 metadmin 系统, metadmin 还会根据该文件创建相关权限表格。

比如业务系统的用户表信息如下:

 

--用户信息表
create table demoUser (
       id integer NOT NULL,
       loginName varchar(30) NOT NULL unique,
       name varchar(30),
       password varchar(30),
       companyId integer,
       departmentId integer,
       isManager integer,
       primary key(id) );
--用户信息视图,关联company表获取公司级别信息
CREATE VIEW UserView AS
  select u.*,c.companyLevel from demoUser u, company c
  where u.companyId=c.id;
 

 

 

该系统的用户元数据信息应该是这样的:

 

<?xml version="1.0" encoding="gbk"?>
<user>
       <table ds="mydemo" name="mainTable" sqlName="UserView" uniqueFields="loginName">
              <field name="id" columnName="id" sqlType="int" javaType="java.lang.Integer"
                     displayName="ID" show="true" />
              <field name="name" columnName="name" sqlType="varchar(40)"
                     javaType="java.lang.String" displayName="姓名" show="true" />
              <field name="loginName" columnName="loginName" sqlType="varchar(40)"
                     javaType="java.lang.String" displayName="登录名" />
              <field name="password" columnName="password" sqlType="varchar(40)"
                     javaType="java.lang.String" />
              <field name="isManager" columnName="isManager" sqlType="int"
                     javaType="java.lang.Boolean" />
              <field name="companyId" columnName="companyId" sqlType="int"
                     javaType="java.lang.Integer" />
              <field name="departmentId" columnName="departmentId" sqlType="int"
                     javaType="java.lang.Integer" />
              <field name="companyLevel" columnName="companyLevel" sqlType="int"
                     javaType="java.lang.Integer" />
       </table>
</user>
 

 

 

注: name 属性等于 idname 的两个 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

设计器如图示:  

(附件为相关配置文件)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值