APP下载

OA系统中权限的设计与实现

2014-11-27郅芬香王留芳

新媒体研究 2014年19期
关键词:身份验证

郅芬香++王留芳

摘 要 在网络技术飞速发展的今天,传统的纸质办公方式已经远远不能满足时代发展的需求,OA的出现很好的解决了这样的问题,它不仅能够处理公司内部的事务性工作、辅助管理,还提高了办公效率。其中,一个好的权限管理设计显得尤为重要。

关键词 身份验证;权限设计;JSP

中图分类号:TIll7 文献标识码:A 文章编号:1671-7597(2014)19-0035-01

企业将OA系统作为日常办公的平台以后,公司的大部分事务和流程都需要通过OA来办理,安全性问题便随之而来。OA办公系统的安全涉及多个方面,典型包括的数据安全、硬件网络的安全、身份认证安全等。它们之间相互关联影响,如:身份认证安全出现问题,非法用户的非法入侵系统导致数据的丢失和泄露,硬件的毁坏导致数据的损失,网络不安全导致数据传输过程中的数据泄露。身份认证安全是指通过一系列的技术手段和相关的措施,确保用户在登录认证和应用中的安全性和合法性。本文的论述重点为系统的权限设计和实现,寻找一种有效的权限匹配算法,实现身份认证。

1 算法实现

1.1 使用工具

1) 操作系统采用WINDOWS平台。

2) 数据库管理系统采用SQLServer 2005。

3) WEB服务器采用Tomcat。

4) 程序设计采用JSP技术。

1.2 实现过程

1.2.1 算法的基本思想

OA中将权限分为模块级权限和数据级权限,分别从横向和纵向2个维度来控制用户权限,以适应不同的情况。

模块级权限主要控制模块、菜单、操作等,比如人力资源、行政管理等模块的显示,以及查看、添加等操作按钮的显示;

数据级权限主要控制列表中数据的查看权限,分为全部、指定部门、本部门、个人4种。

1.2.2 数据库设计

针对权限设计,数据库中共用到6张表,分别是:模块/权限表、职位表、用户表、职位权限表、用户权限表、用户权限屏蔽表。

模块/权限表包括模块/权限编码、模块/权限名称、模块/权限值等;职位表包括职位名称、所属部门、管理范围等;其中,管理范围包括:个人、本部门、指定部门、全体;用户表包括用户名、密码、职位等;职位权限表包括职位ID、权限ID;用户权限表包括用户ID、权限ID;例如,2个职位相同的用户A和用户B,对应的职位权限是相同的,当需要用户A比用户多“删除”权限时,只需要在用户权限屏蔽表中增加一条记录,该记录的值为:用户A的ID、“删除”权限的ID;用户权限屏蔽表包括用户ID、权限ID;与用户权限表相反,当需要用户A比用户B少某项权限的时候,只需要在该表增加一条记录,该记录的值为:用户A的ID、“删除”权限的ID,即可。

1.2.3 程序设计

当用户登录OA时,需要先输入用户名、密码、验证码等信息,系统获取数据库中是否存在与之匹配的用户名和密码,并且是否允许登录;当验证通过后,再判断该用户是否是第一次登录,当第一次登录时,提示必须修改初始密码。否则,系统取出该用户对应的相关权限值,并保存到session中,跳转到OA主界面。

//获取用户输入的用户名、密码等信息

String username=request.getParameter(“name”);

String password=request.getParameter(“pwd”);……

//查找数据库中是否存在与之匹配的用户信息

if(userID<0||!password.equals(password2)||ifLogin==0) return;

//验证通过后,将用户关键信息保存到服务器的session中,以便系统调用

session.setAttribute(“userID”, String.valueOf(userID));

session.setAttribute(“username “, username);

session.setAttribute(“permit”,permit);

session.setAttribute(“range”,String.valueOf(range));

//判断用户是否是第一次登录

if(ifFirstLogin==1)

response.sendRedirect(“person/console/pass/setFirst.jsp”);

else

response.sendRedirect(“frame.jsp”);

进入OA系统以后,当用户点击某个操作按钮时,需要判断该用户是否具有该按钮的操作权限,系统首先通过调用session.getAttribute(“permit”)获取该登录用户session中保存的permit值,然后调用permit.indexOf(“***”)!=-1来判断该用户是否具有操作该按钮的权限,如果有该权限,则不提示;否则,提示“您无此权限!”。

if(!permit.indexOf(“***”)!=-1)

{

out.print(“”);

}

2 总结

论文提出的权限控制和算法,能够有效控制用户的非法登录,以及对资源的访问,实现了OA系统中的权限控制,目前该方法已经应用到所开发的OA办公系统中,使用多年,取得了较好的成效。

参考文献

[1]牛丹梅,丁一.OA系统中基于角色的安全访问控制设计[J].信息安全,2009,25(7):59-61.

[2]徐江峰,刘恒强.基于角色和加密技术的访问控制研究[J].微计算机信息,2008,1(3):36-38.

[3]陈建斌,刘文宏.办公自动化系统中权限模型的设计[J].纺织高校基础科学学报.2006,19(1):85-89.

[4]SANDHU R S.The Typed Access Matrix Model[R].Oakland,California:Proc IEEE Symposium on Research in Security and Privacy,1992.

作者简介

郅芬香(1983-),女,汉族,河南鹤壁人,硕士,讲师,主要研究领域:数据挖掘,CDN。endprint

猜你喜欢

身份验证
声纹识别认证云落户贵州
基于Windows下的文件保密隐藏系统的设计与实现
智能家居系统安全性方案的设计
应用防火墙的网络安全技术分析