摘 要:针对当前大多数信息发布系统不稳定性、安全性不高等缺点,提出了一种基于Struts2架构与FCKeditor编辑器整合的信息发布系统方案。该系统方案有效结合了Struts2与FCKeditor的优点,使得系统具有一定的稳定性和友好性,并且利用Spring Security,提供了完整的访问控制机制,保证了系统的安全性。
关键词:Struts2;FCKeditor;Spring Security;信息发布系统
中图分类号:TP319
文献标识码:A 文章编号:1672-7800(2015)005-0082-02
作者简介:李佳(1990-),女,四川什邡人,西华师范大学计算机学院硕士研究生,研究方向为计算机应用。
0 引言
随着网络信息技术的发展和普及,信息发布逐渐呈现出数字化、网络化、智能化和多媒化等特点。鉴于目前大多数信息发布系统普遍存在信息发布质量低、信息安全难以保障且待发布信息难以管理与控制等缺点,开发功能强大、安全可靠、稳定性高的信息发布系统具有重要意义[1]。本文设计了基于Struts2与FCKeditor整合的信息发布系统,该系统完美地结合Struts2架构与FCKeditor编辑器,使得系统界面友好、操作简单,并且利用Spring Security的访问控制机制,使得不同权限用户浏览的信息也不尽相同,从而保证了系统的安全性。
1 系统相关技术
1.1 Spring Security
Spring Security是一种基于 Spring 的安全框架,它提供了认证、授权、访问控制、会话管理等多种功能,为基于Java EE的企业应用软件提供了全面的安全服务。它实现的是Java EE安全体系结构中的第二种安全模式——基于用户访问控制的安全模式[2]。Spring Security安全框架主要由安全栏截器、认证管理器、访问决策管理器、运行身份管理器以及调用后管理器组成。
1.2 Struts2与FCKeditor整合
Struts2框架是一种基于MVC模式的框架,M指数据模型,V指视图,C指控制器。其由3个部分组成:核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。
FCKeditor 是一个专门使用在网页上,属于开放源代码的所见即所得的HTML文字编辑器[3]。其操作界面类似于MS WORD,能提供富文本编辑功能。它不需要太复杂的安装步骤即可使用,且不必在客户端进行任何方式的安装。在所有在线编辑器中, FCKeditor位于目前互联网上最好的编辑器之列,功能强大、支持多种浏览器、无平台限制,可与PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java及ABAP 等不同的编程语言相结合。
Struts2与FCKeditor整合步骤如下:①下载Fckeditor;②解压后,将里面的fckeditor目录导入到项目的WebRoot目录下;③导入fckeditor-java-core的jar包到项目WEB-INF/lib目录下;④创建默认上传目录:webRoot下创建userfiles,在其内部分别创建image、flash、file、media 4个文件夹;⑤添加fckeditor.properties文件,添加connector.userActionImpl=net.fckeditor.requestcycle.impl.UserActionImpl;⑥打开项目fckeditor文件,找到editor-->filemanager-->connectors-->php-->config.php文件,找到$Config['Enabled']=? false;将false改为true,意思是开启上传功能;⑦在web.xml内添加如下代码:
<!-- fckeditor -->
⑧写一个过滤器继承Struts2的StrutsPrepareAndExecuteFilter,将web.xml修改为:
2 系统设计
本文设计的是成教院信息发布系统,为保证信息安全,采用了IP控制、身份认证、访问控制等多重措施。IP控制可以让校内公共信息限定在校内才能够浏览,校外只能浏览一些基本公告信息。该系统的用户分为3类,按从高到底的权限级别排列分别是管理员、教师、学生。通过系统页面登录,对登录用户进行身份认证,授予相应权限,对不同角色的用户访问进行控制。该系统功能模块如图1所示。
管理员拥有系统的最高权限,负责栏目管理、信息发布管理、文件上传管理,可以浏览所有公告信息和下载所有文件;教师拥有系统教师权限,由于发布的信息和上传的文件都是有授权的,教师只能查看自己权限相当或者以下(学生权限)的公告,下载自己权限相当或者以下(学生权限)的文件;学生拥有学生权限,学生只能查看授予了学生权限的公告,下载授予了学生权限的文件。
2.1 栏目管理
栏目管理主要是向系统后台添加栏目,栏目指网站所有的内容频道,该功能包括栏目基本信息创建和设置管理、栏目权限管理、发布定时管理等。同时其功能延伸到了专栏的删除、重命名、复制、粘贴、移动等[4]。栏目管理分为栏目添加、栏目编辑、栏目删除等。
2.2 信息发布管理
信息发布管理是对信息录入、编辑、删除、发布的管理。通过栏目类型搜索出相应的栏目公告,可以对其进行编辑或者删除管理。在信息录入的jsp页面中添加如下标签声明:<%@ taglib uri="http://java.fckeditor.net" prefix="FCK"%>,并且在Body标签中需要放置的编辑器位置引用FCKeditor:
对已经发布的信息,用户可以在系统公布栏中浏览其详细内容。
2.3 文件管理
文件管理是对文件上传、删除及下载的管理。管理员通过选择文件的使用者来搜索、查找相关文件,并对其进行操作管理。对已经上传的文件,用户可以在系统的文件下载页面下载所需相关文档。
2.4 用户管理
用户管理是对系统用户的添加、删除、授权管理。确定网站中各栏目、信息组合,以及网页、信息元素的浏览、使用、下载等操作的使用权限, 这需要用户管理系统中组、用户、角色和权限等概念的支持[5]。
2.5 数据库设计
按照规范设计方法,考虑数据库及其应用系统开发全过程,将数据库设计分为4个阶段[6]:①需求分析:准确了解与分析用户需求(包括数据与处理);②概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型;③逻辑结构设计:将概念模型转换为DBMS 所支持的数据模型,并对其进行优化;④数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
根据需求设计可知,该系统所涉及的主要数据库表如下:①用户表:用户id、用户名、登录密码、登录时间、登录ip、用户组id;②公告表:公告id、栏目类型、公告标题、关键词、发布日期、编辑者、公告内容、公告权限;③文档表:文档id、文档名使用者、上传时间、上传路径。
3 结语
基于Struts2与FCKeditor整合的信息发布系统充分发挥了Struts2框架的优势,使得系统层次清晰,保证了系统的稳定高效,并获得了较好的扩展性和易维护性,而且系统界面友好、操作简单方便。
参考文献:
[1] 徐慧君.基于JSP平台的信息发布系统的设计与实现[D].北京:北京工业大学,2004.
[2] 李瑞.基于 AOP 和 Acegi 的访问控制技术的研究与应用[D]. 武汉:武汉理工大学, 2009.
[3] 张孝祥.传智播客 fckeditor 视频教程[EB/OL]. www.itcast.cn/it-cast_static/FCKeditorVideo.htm,2012.
[4] 杨志勇.基于 Struts2 框架的网站信息内容管理平台的设计与实现[J].计算机与现代化,2012(8):98-100.
[5] 任小林,桂仕伟,吴祈宗.基于XML 的Web 信息发布系统及其J2EE实现[J].计算机应用,2003,23(10):134-137.
[6] 萨师煊.数据库系统概论[M].北京:高等教育出版社,2000.
(责任编辑:孙 娟)