第一章
安装
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
还会根据该文件创建相关权限表格。
比如业务系统的用户表信息如下:
--用户信息表
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
属性等于
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
设计器如图示:
(附件为相关配置文件)
分享到:
相关推荐
BS应用系统中的细粒度权限管理模型.pdf
java的细粒度权限和shiro权限校验 Spring + Struts + hibernate
基于SpringBoot+shiro实现数据库的细粒度动态权限管理系统 项目经过严格测试,确保可以运行!源码无需做任何更改! 基于SpringBoot+shiro实现数据库的细粒度动态权限管理系统 项目经过严格测试,确保可以运行!...
这是一个基于Spring Security框架的细粒度权限管理系统,使用Java语言开发,同时包含JavaScript、CSS、HTML等多种编程语言。该项目共包含2447个文件,其中主要文件类型包括JavaScript、PNG图片、CSS、HTML、JAR包、...
权限控制是Web应用项目中比较关键的环节,如果不建立权限管理系统,那么一个非法用户可以轻而易举通过浏览器访问Web应用项目中的所有功能。因此需要权限管理系统进行权限检测,让经过授权的用户可以正常合法的使用已...
Android平台细粒度权限管理系统的研究与实现.pdf
Android平台下细粒度权限管理机制设计与实现.pdf
电信设备-信息系统中细粒度权限管理方法.zip
【2018hit计算机系统安全】实验二:细粒度权限管理及实现root能力的分发和管理
细粒度管理Linux文件系统.pdf
动态代理加注解实现细粒度的权限拦截,具体到方法
细粒度位置追踪
动态代理加注解实现细粒度的权限管理,具体到方法(前面上传的资源修改)
ai challenger 2018细粒度情感分类第一名解决方案,统一使用tensorflow和pytorch的一个框架
数据集中的评价对象按照粒度不同划分为两个层次,层次一为粗粒度的评价对象,例如评论文本中涉及的服务、位置等要素;层次二为细粒度的情感对象,例如“服务”属性中的“服务人员态度”、“排队等候时间”等细粒度...
简单的权限管理系统,设计人员管理,细粒度的权限管理,项目基于springboot,使用了jwt技术。
使用SpringBoot与shiro实现基于数据库的细粒度动态权限管理系统实例
模仿shiro 框架,自己实现的权限管理系统 采用 ssm+自定义标签+自定义注解 来达到细粒度控制权限
使用 Springboot 实现的基于数据库细粒度动态权限管理系统.zip