文档章节

Android 锯齿数组用于RBAC权限管理

IamOkay
 IamOkay
发布于 2014/11/05 23:10
字数 884
阅读 80
收藏 37
点赞 0
评论 3

一、原理

java中提供锯齿数据,某些时候特别有用,比如用group映射activity编号。在客户端,我们定义角色组,然后给每个组分配角色id;

二、关于锯齿数组

此外涉及到http数据还是json数据保存护传输。

public static void main(String[] args)
{
  //使用在json数据转换中  
   int[][] groups = new int[3][];
   groups[0] = new int[]{1,3,4,5};
   groups[1] = new int[]{6,2};
   groups[2] = new int[]{1,3,5,6,8};
   
   Gson gson = new Gson();//使用google开源工具类 Gson.jar
   String json = gson.toJson(groups);
    
   System.out.println(json);  
}

三、构建权限模型

对于每个用户的权限,基本上是RBAC形式,根据用户角色判断页面是否可以访问。

User -> Group -> Role

1、RBAC简介

RBAC是Role-Based Access Control的首字母,译成中文即基于角色的权限访问控制,说白了也就是用户通过角色与权限进行关联[其架构灵感来源于操作系统的GBAC(GROUP-Based Access Control)的权限管理控制]。简单的来说,一个用户可以拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。其对应关系如下:

在许多的实际应用中,系统不只是需要用户完成简单的注册,还需要对不同级别的用户对不同资源的访问具有不同的操作权限。且在企业开发中,权限管理系统也成了重复开发效率最高的一个模块之一。而在多套系统中,对应的权限管理只能满足自身系统的管理需要,无论是在数据库设计、权限访问和权限管理机制方式上都可能不同,这种不致性也就存在如下的憋端:

  • 维护多套系统,重复造轮子,时间没用在刀刃上
  • 用户管理、组织机制等数据重复维护,数据的完整性、一致性很难得到保障
  • 权限系统设计不同,概念理解不同,及相应技术差异,系统之间集成存在问题,单点登录难度大,也复杂的企业系统带来困难

RBAC是基于不断实践之后,提出的一个比较成熟的访问控制方案。实践表明,采用基于RBAC模型的权限管理系统具有以下优势:

  • 由于角色、权限之间的变化比角色、用户关系之间的变化相对要慢得多,减小了授权管理的复杂性,降低管理开销;
  • 而且能够灵活地支持应用系统的安全策略,并对应用系统的变化有很大的伸缩性;
  • 在操作上,权限分配直观、容易理解,便于使用;分级权限适合分层的用户级形式;
  • 重用性强。

2、步骤

①我们只需要给用户分配角色

setUserGroup(Group);

②给每个页面一个角色id

访问的时候从角色组取出id,比较页面id是否包含在角色组中,如果包含则允许访问。

 

这样我们可以避免每次页面跳转时访问服务器。

 

 

© 著作权归作者所有

共有 人打赏支持
IamOkay
粉丝 187
博文 458
码字总数 369998
作品 0
海淀
程序员
加载中

评论(3)

JPer
JPer
锯齿数组是什么鬼
IamOkay
IamOkay

引用来自“spzp”的评论

大神,代码部分可以再详细点不?数据库应该怎么存啊?
角色id和页面对应就行,其实这个把,最好把没有权限的页面入口给隐藏掉,体验会更好一些!
s
spzp
大神,代码部分可以再详细点不?数据库应该怎么存啊?
浅入浅出 Android 安全:第六章 Android 安全的其它话题

第六章 Android 安全的其它话题 来源:Yury Zhauniarovich | Publications 译者:飞龙 协议:CC BY-NC-SA 4.0 在本章中,我们会涉及到与 Android 安全相关的其他主题,这些主题不直接属于已经...

apachecn_飞龙
2016/12/02
0
0
浅入浅出 Android 安全:第四章 Android 框架层安全

第四章 Android 框架层安全 来源:Yury Zhauniarovich | Publications 译者:飞龙 协议:CC BY-NC-SA 4.0 如我们在第1.2节中所描述的那样,应用程序框架级别上的安全性由 IPC 引用监视器实现...

apachecn_飞龙
2016/12/05
0
0
Android API包名及包的功能的中文介绍

android 包含应用平台和在定义应用程序所用到android系统功能的应用权限的资料文件类, android.accessibilityservice:这个包中的类用于为无障碍服务的开发提供替代或增强的反馈给用户 andr...

织网人
2013/04/13
0
0
Android 学习笔记【基础扫盲篇】

前一段时间断断续续的看过几天android,由于不连贯,效果不是很好,最近打算用一个月的时间系统的学习一下。 1、android的生态系统 Android是由Google在2007年推出的一个开源系统平台,主要针...

samuel2012
2012/07/15
0
1
ActivityGroup是如何对嵌入的Activitys进行管理的

此前,我们对Activity进行了一些学习,在Android中,还提供了一个ActivityGroup类,该类是Activity的容器,可以包含多个嵌套进来的Activitys,我们接下来依然采用源码分析的方式来了解该类的...

垂盆草
2012/07/22
0
0
Android AndroidManifest 清单文件以及权限详解

每个Android应用都需要一个名为AndroidManifest.xml的程序清单文件,这个清单文件名是固定的并且放在每个Android应用的根目录下。它定义了该应用对于Android系统来说一些非常重要的信息。And...

程序袁_绪龙
2015/01/13
0
0
Android源码学习之四-ActivityGroup是如何对嵌入的Activitys进行管理的

此前,我们对Activity进行了一些学习,在Android中,还提供了一个ActivityGroup类,该类是Activity的容器,可以包含多个嵌套进来的Activitys,我们接下来依然采用源码分析的方式来了解该类的...

晨曦之光
2012/03/13
0
0
保护你的隐私,五种控制Android应用的权限的方法

这篇文章目的在于介绍Android系统上控制权限的方法,读者只要使用过Android,或是对智能机平台有所了解,就能看懂,不需要专门的编程知识。 1 为什么Android总是事无巨细地告诉你应用索取的每...

大凉龙雀
2013/04/15
0
1
五种控制Android应用的权限的方法

这篇文章目的在于介绍Android系统上控制权限的方法,读者只要使用过Android,或是对智能机平台有所了解,就能看懂,不需要专门的编程知识。   1 为什么Android总是事无巨细地告诉你应用索取...

独-奏
2012/08/20
0
0
android中简单的图形绘制

今天彻底的了解了画图的工具,希望能帮助各位 在我们写一个类继承view的同时,需要实现一个onDraw()的方法 Paint paint=new Paint(); paint.setAntiAlias(true); //设置画笔为无锯齿,如果不设置...

Thanks
2012/11/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
50分钟前
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
今天
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
今天
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
1
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部