深入探索Shiro权限框架的体系结构和实际应用

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:vvv_vvv
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:权限管理系统是现代软件项目中必不可少的子系统,用户通常要求权限管理系统是细粒度和松耦合,尽量减少在权限系统开发中花费更多的精力。Java项目中通常会将重复使用的技术封装为框架,然后将框架挂接到实际项目中,从而大幅度提高项目制作效率和代码质量。该文主要讨论Shiro框架在企业中的应用,文章主要从Shiro的体系结构、构建和具体应用三个方面进行了详细的阐述,通过对比阐明了Shiro框架在技术和使用等方面的优势。
  关键词:权限;JavaEE;框架;Shiro
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)22-0067-02
  权限管理是指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。在软件项目中,几乎所有的系统都需要权限管理系统。但是权限管理系统的设计是一件非常复杂的事情,它需要遵从这样几条原则:一是必须保障系统使用的安全,能够覆盖系统所有功能,所以通常要求权限管理系统是细粒度的;二是能夠方便快捷的进行系统权限的分配,不受到用户数量和用户使用功能的限制,其中最长采用的是基于角色的访问控制模型(RBAC);三是权限系统和业务相分离,无论从代码层面,还是应用层面,权限系统的开发和使用不受到业务的限制。
  1 Java项目权限框架概述
  Java项目中除了自己开发权限框架外,经常会使用一些开源的权限框架,或者是在这些开源的框架上进行二次开发,使用权限框架可以大大简化权限系统的开发,能够满足大多数企业项目复杂的需求。常见的框架技术有Spring Security、AcegiSecurity、Kasai、ralasafe和Shiro等,每种框架都具有自己的特点,也存在不能进行细粒度控制、功能简单、无法满足用户的需求和易用性差等缺点。
  Shiro是众多框架中表现相对较好的一个,它是由Apache公司的开发的Java权限框架,它是基于RBAC的细粒度框架,从依赖关系来讲,它不依赖任何框架技术,可以独立被使用,也可以和其他框架结合使用;从应用范围来讲,它既可以被应用到Web开发,也可以被应用到客户端开发;从具体应用来讲,它的配置非常简单,易用性很强,本文重点讨论如何使用Shiro构建权限管理系统。
  2 使用Shiro构建权限系统
  2.1 Shiro框架的体系结构
  1)认证(Authentication),它的功能是判断用户身份是否合法,通俗来讲是登录功能,这是权限系统最为基础的功能,Shiro允许用户对认证方法重写,从而根据项目的业务需求实现认证。
  2)授权(Authorization),这部分功能是权限系统的核心功能,Shiro是基于RBAC模型进行授权,它最基础的内容是权限点,这也是细粒度控制的体现。通过授权,Shiro框架将预先定义好的权限点和角色分配给用户,用户在认证通过后,Shiro框架会约束用户对于系统访问的权限。
  3)会话管理(Session Management),Web项目中通常具备会话管理功能,例如:Java Web中通常使用HttpSession类进行会话管理,Shiro框架构建了专门的会话管理机制,Web项目中的会话可以由它代为管理,即使不具备会话管理功能的客户端项目,Shiro的会话管理功能也可以使用,这使得Shiro用户在会话管理层面无需关心是何种类型的项目,这也是Shiro框架易用性的重要体现。
  4)加密(Cryptography),权限系统中数据加密是必不可少的内容,Shiro试图简化加密和解密操作,它引入了CipherService API,让用户只需提供密钥就可以根据需要进行加密和解密。此外,Shiro封装了诸如md5和sha等常用的加密算法,方便用户进行调用。
  5)其他功能,除了核心功能外,Shiro还提供了几项非常实用的特征,包括Web支持、缓存功能、多线程并发验证、测试工具等。
  2.2 构建权限框架
  Shiro框架是RBAC模型,而且是细粒度权限管理,其构建的基础是权限点,角色和用户等权限数据都是基于权限点进行建立。用户可以通过重写AuthorizingRealm类和修改配置文件实现Shiro框架服务于业务系统,以下是具体构建的流程:
  1)定义权限数据
  权限数据通常与被存储在数据库中,也可以用其他的形式存储。在具体建立时通常需要构建权限点数据、角色数据和用户数据,权限点数据和角色数据是多对多关系,角色数据和用户数据也是多对多关系,权限点数据最为核心的内容是权限字符串,通常形式是“fjqx:zjqx”,冒号前代表父级权限,后面是子集权限,无论是在页面还是在程序代码中,都是通过这个串标识系统功能,这个串对应的权限点被赋予了哪个用户,哪个用户才拥有访问这个系统功能的权限。
  2)配置Shiro过滤器
  以Web开发为例,Shiro权限框架的基础是过滤器,过滤器根据认证和授权的设定,决定用户访问系统的权限,Shiro提供IniShiroFilter类完成这项工作。由于Shiro提供了对于Spring和Struts等框架的支持,所以针对于不同类型的框架,过滤器配置有一定的差异。
  3)继承AuthorizingRealm类
  继承AuthroizedingRealm类,重写“doGetAuthorizationInfo”和“doGetAuthenticationInfo”方法是Shiro开发的核心,通过对这两个方法的重写,用户可以根据自己业务的实际情况编写认证和授权功能。例如:用户数据和授权数据如果存储在数据库中,这两个方法中就可以读取数据库,完成认证和授权的编写。
  4)URL配置   URL配置可以设定系统URL认证路由情况和访问权限,通过配置“loginURL”、“successURL”、“unauthorizedUrl”等参数决定系统认证入口、认证成功和认证失败的URL流向。通过给系统URL设定”authc”、“anon”、“logout”等值,确定哪些URL需要认证才可以访问,哪些路径可以匿名访问,哪些路径是注销链接。
  2.3 Shiro的實际应用
  1)用户认证
  用户认证和传统的用户登录有一定的差别,首先需要利用Shiro提供的UsernamePasswordToken类和输入的用户名验证信息构建认证令牌,然后使用Subject类的login方法进行令牌的验证,从而判定登录是否成功。
  2)授权的应用
  授权的应用主要体现在三个方面:一是URL控制;二是页面级元素的控制;三是代码级权限控制。URL通过配置文件决定访问的方式和权限,页面级元素和代码级权限控制主要通过权限字符串,在Web开发,可以通过标签的方式在页面中进行HTML元素的控制,代码级权限可以通过isPermitted(权限字符串)、isRole(角色字符串)等方法进行权限控制。
  3 结束语
  Shiro权限框架是开源的,它提供了简洁和实用的权限管理功能,它在用户界面、访问路径和代码层面都提供了访问控制,能够做到真正安全的访问控制。Shiro所有的技术都是围绕认证和授权这两个核心,根据系统的需要可以重写认证和授权,这提供给用户更加灵活的权限管理。但是,项目的需求通常会非常复杂,Shiro在具体应用的时候还需要根据项目的实际需求对Shiro源代码进行相应的调整,再结合Shiro的特点完成具体任务。
  参考文献:
  [1] 黄经赢.基于Shiro框架的细粒度权限控制系统的设计与实现[J].广东技术师范学院学报:自然科学,2013(7):20-23.
  [2] 杨运平, 吴智俊.Apache Shiro安全框架在技术转移服务系统中的应用[J].计算机与现代化,2014(3):157-160.
  [3] 梁云娟.使用SpringSecurity开发安全的Java程序[J].河南师范大学学报:自然科学版,2012,4(40):148-150.
其他文献
摘要:在社会需求量不断增加的背景下,国内机关单位以及企业的办公内容也变得更为复杂,传统的办公设施难以妥善处理好大量的工作信息,不仅增加企业的经营压力,还导致企业办公成本提升。办公自动化属于计算机技术的发展成果,在办公自动化的影响下,办公人员可有效处理信息档案,并能及时掌握企业的最新动态,以此增强办公质量。文章主要介绍计算机技术对于企业办公的意义,并探讨计算机技术在企业办公中的体现形式,旨在为企业的
无线技术的发展,尤其是以智能手机为代表的移动终端的普及,促使各高校在原有有线网络的基础上建立无线网络。文章以贵州省凯里学院为例,利用Cisco Packet Tracer5.3模拟环境,
摘要:本文通过对国有企业办公自动化系统的现状分析,根据工作流参考模型,构建了基于工作流技术的办公自动化系统。针对企业的具体需求,根据国有企业办公流程的特点,将工作流技术应用到办公自动化系统的工作过程中,有效地提高了业务操作的效率。  关键词:工作流技术;办公自动化;国有企业  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)21-0263-02  1 引言  随着计
摘要:随着计算机网络技术的高速发展,计算机应用技术以及网络技术已得到广泛普及与应用,但随之出现的安全隐患也越来越多,目前计算机网络的攻击形式多种多样,严重影响了人们的生产生活。目前我国计算机网络存在较大的安全漏洞及缺陷,这样就使很多不法分子利用计算机网络存在的漏洞从而得到相应利益。本文针对计算机网络安全锁存在的问题而做出相应的优化解决方案,从而提高计算机网络的安全性、稳定性,使计算机网络得到更好的
目前,我州的大多数中小学都建设了自己的校园网,考虑到校园建筑的布线问题,以及现在许多老师都配备了带无线网卡的笔记本,校园无线网络的建设也得到快速发展。但许多学校都为
近年来可穿戴式设备大量涌现,用户对可穿戴式设备的功能要求也越来越高,但是,可穿戴式设备复杂功能的实现往往依赖多路传感信号的实时采集。本文以可穿戴式8通道PVDF传感器系
摘 要:运用文献资料、逻辑分析等研究方法,在阐述居住分异、非均衡发展与体育场馆合理布局的基础上,立足当前城市社区居住分异的社会背景,对我国社区体育场馆布局失衡的现状分别从城市内区域、区域内社区和社区内群体三个层次上进行了分析,并进一步深化这种失衡态势源自社区群体的居住分异。以此为依据,从国家投资、人均占有和项目布局三个维度论证了社区体育场馆布局需要非均衡发展的观点,并对其非均衡发展模式进行了展望。
随着信息技术的发展普及和医院现代化管理需要的不断提升,"信息管理"工作在医院逐渐广泛开展起来。覆盖药品、收费、人力资源、财务、物品等管理的医院信息系统(HIS)、将医生护士
为了解决针对隐身飞机的防御研究中,相控阵雷达对隐身飞机的探测效能计算这一问题,使用STK仿真软件为手段,提出了一种相控阵雷达的建模仿真方法。后在针对某型隐身飞机的预警
摘要:患者基本信息的准确性在医疗行为中至关重要,过去在患者基本信息中存在一定的安全隐患,该文通过一系列的控制措施,错误数据修正及规范管理,极大地提高了患者基本信息的准确性,消除了潜在的安全隐患,保证了医院的安全管理质量,提高了医务人员的工作效率。  关键词:患者基本信息;准确性;安全管理质量  中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)24-0263-02