APP下载

基于Shiro的某高校科研信息管理系统的设计与实现

2017-09-18宋成明

智能计算机与应用 2017年4期
关键词:认证访问控制科研

宋成明

摘要: 高校科研信息管理系统主要提供高校对科研成果的录入、材料的初核、成果的评定、查询统计与汇总等各类处理。本文介绍了Shiro框架的主要功能特征,并基于Shiro应用框架对现有的高校科研信息管理系统实现系统集成,提供系统所需要的用户、角色、资源管理。为科研管理实现细粒度的访问控制,为科研信息安全提供保障,满足了高校对科研信息管理的需求。

关键词: 访问控制; 科研; Shiro; 认证

中图分类号:TP393.08

文献标志码:A

文章编号:2095-2163(2017)04-0062-03

0引言

随着我国高等教育信息化发展,推动信息技术与科研管理融合创新还处于探索阶段[1-2]。在科研管理信息系统的集成与整合上涉及到了权限管理的优化与再造。

结合科研信息的发展及学校自身管理的实际需求,采用Shiro安全框架与现有的科研信息管理系统集成,实现科研信息管理用户、菜单、角色的灵活配置,提升了系统的安全性,为高校系统整合提供参考。

1Shiro框架简介

Shiro是用于身份验证和授权的开源安全框架,通过一个简单易用的 API 提供身份验证、角色授权、管理会话以及密码加密。提供基于角色的细粒度的权限控制,增强了对缓存的支持。

2科研信息管理系统需求

2.1科研信息管理系统的现行技术

某高校现行的科研管理系统采用 B/S 体系结构,以Spring+Spring MVC+MyBatis开源框架设计开发[3-4]。系统采用MySQL数据库,在逻辑上划分了 3 个层次,分别是数据层、基础层和应用层。在此,给出各层的功能阐释如下。

1)数据层。数据层是科研信息管理系统的业务模型,提供科研成果数据的管理服务。包含了各种科研成果信息数据、用户权限信息等,是科研数据管理的基础。

2)基础层。基础层采用Java EE框架技术设计实现,基于分层解耦思想,系统前台界面重点采用Bootstrap设计开发,以Spring为核心,由轻量级框架SSM(Spring + Spring MVC + MyBatis)整合系统开发架构。

3)应用层。应用层实现了科研信息管理系统的核心功能,功能模块主要包括科研成果录入、参与人员管理、院系初审、科研处核定、查询汇总和系统管理等。

2.2访问控制需求

随着高校科研成果的日益增多,科研信息管理系统中,现有的科研信息管理方式给工作人员带来了繁重的工作压力[5]。在高校信息化发展的大前提下,科研系统与高校其它系统的整合成为必行之路。科研成果的录入、纸质文件的初审、成果的考核量化与界定不再由科研部门人员统一录入。科研信息管理的实际需要,对高校各类人员的系统访问提出新的需求。研究可得,需求分析如下。

1)用户登录。采用学校信息中心提供的统一身份编码进行系统登录与访问。

2)菜单管理。将科研信息管理系统中的各种资源,以系统菜单的形式保存在数据表中,以便于后期对系统资源的统一分配与管理。

3)数据可见性。结合学校科研管理的实际,将科研信息管理系统的数据范围定义为:0-所有数据;1-所在学校及以下数据;2-所在部门及以下数据;3-仅本人数据;9-按明细设置。

4)角色管理。能够将系统在信息录入、初审、终审过程中的各方面人员设计确定分组、分级。能够对指定角色的数据可见性进行实时管理。

5)用户与角色管理。灵活管理各组人员的用户。能够实时地根据学校人事处对教职工人员变化做出动态的管理。

3系统设计与实现

[JP2]本文采用MyEclipse2017 + Maven进行系统开发。研究采用的主要技术为Spring + SpringMVC + Shiro。项目通过导入现有的源代码对Spring和SpringMVC进行配置。为了对系统有效展开整合研究,实现通过Shiro安全框架来设计支持用户的访问控制,则需要引入Shiro以及Shiro集成到Spring的包。[JP]

3.1数据库设计

本文对现行的科研信息管理系统的集成基于Shiro安全框架,结合Shiro框架中提供的API接口,充分利用Shiro提供的通配符特性,实现科研信息管理系统对访问控制细粒度管理的需求,设置访问控制模型,能够对Web应用内的权限和资源(URL链接、操作按钮、页面的HTML元素)进行管理。具体内容如下:

1)SYS_USER:用户信息表,用于存储学校所有师生用户信息。同时为学校其它应用系统的融合提供数据支持。

2)SYS_ROLE:角色信息表,用于存储科研信息管理系统的角色信息。表中内置基本的用户角色,提供系统启动运行的必须角色信息。该表是Shiro框架的核心组件。

3)SYS_MENU:系统资源表,用于存储系统内可访问的菜单信息、操作信息。表中的PERMISSION字段结合Shiro框架的通配符机制设计,结合资源和操作来定义细粒度的资源访问,PERMISSION字段中的数据值命名规则为[业务模块]:[资源名称]:[操作名称],如sr:project:view(权限:查看项目)。

4)SYS_USER_ROLE:用户与角色对应关系表,存储系统中用户与指定角色的对应信息。

5)SYS_ROLE_MEUN:角色與权限对应关系表,存储系统中角色与资源(操作)的对应信息。

6)SYS_DICT:数据字典表,存储本系统的数据字典信息,如项目类型、本人角色。

3.2定义Shiro拦截器

[JP2]在项目集成时,对指定的URL进行拦截,如果没有验证成功的需要验证,然后额外给用户赋予角色和权限。通过继承AuthorizingRealm实现自定义的拦截器SystemAuthorizingRealm,[JP]在子类中实现登录验证和赋予角色权限的2个方法,使得Shiro从自定义的Realm中获取相应的用户认证信息。可以对用户登录的验证码、用户状态、登录次数做出统一的管理。对于登录成功的用户,取得其相应的角色,记录登录的IP与登录时间,同时保存用户的登录日志。endprint

3.3与SpringMVC集成

在Web.xml设计配置Shiro的过滤器来实现Shiro与基于SpringMVC框架系统应用的集成。配置完成后,Shiro 过滤器会将用户每个请求进行处理。根据科研信息管理的实际业务需要,调用特定的业务逻辑方法来确保请求的资源在满足业务规则的条件下方可访问。下面的代码显示了Web.xml文件中相对应的配置片段。

shiroFilter

org.springframework.web.filter.DelegatingFilterProxy

targetFilterLifecycletrue

shiroFilter

/*

需要在classpath路径下配置spring-shiro-web.xml文件。配置代码如下:

<!-- Realm实现 -->

[JP6][JP]

<!--安全管理器 -->

<!-- Shiro的Web过滤器 -->

[JP4][JP]

/authc/admin = roles[admin]

/authc/** = authc

/** = anon

shiroFilter里面配置了多个property,其中,loginUrl属性指没有登录的用户请求需要登录的页面时自动跳转到登录页面; unauthorizedUrl属性指没有权限默认跳转的页面。 filterChainDefinitions属性对于过滤器的规则为:

1)Shiro校验配置的顺序为从上而下。Shiro验证URL链接时,如果匹配成功便不再继续查找。

2)Web应用程序运行时,Shiro将会自动创建Filter实例。

4结束语

本文簡述了某高校科研信息管理系统的技术架构,提出在系统访问控制集成中的实际需求,设计实现了基于Shiro的应用系统整合实例。研究中,通过Shiro框架的特性进行数据表的设计,系统的整合,从而有效保证了科研管理在访问控制中的业务需求。实际应用表明,基于Shiro安全框架对系统资源访问粒度进行自由配置,并且在系统运行中,能够通过CacheManager提高系统权限管理的执行效率,对高校信息化发展中的权限管理有一定的借鉴意义。

参考文献:

[WTBZ][ST6BZ][HT6SS][1] [ZK(#〗

习近平. 科技是国之利器[EB/OL].[2016-06-06]. http://news.xinhuanet.com/politics/2016-06/06/c_129043555.htm.

[2] 李岚冰,律明. 高校就业信息化建设的问题与对策研究[J]. 情报科学, 2017,35 (2):107-111.

[3] 刘建圻, 曾碧, 郑秀璋. 基于RBAC权限管理模型的改进与应用[J]. 计算机应用, 2008,28(9):2449-2451.

[4] 徐孝成. 基于Shiro 的Web 应用安全框架的设计与实现[J]. 电脑知识与技术,2015,11(16):93-95.

[5] 陈玲. 科研院所科研信息化管理系统的设计与应用[J]. 数字技术与应用,2016 (9) :135-137.

[6] 吴江栋, 李伟华, 安喜锋. 基于RBAC的细粒度访问控制方法[J]. 计算机工程, 2008,34(20):52-54.endprint

猜你喜欢

认证访问控制科研
云的访问控制研究
云计算访问控制技术研究综述
中职校园网络安全管理系统设计
大学教学与科研关系的再辨识
教育行动研究可促进中小学教师科研发展
校园骨干层网络交换机的访问控制技术