基于MVC架构的Struts框架实现校园网认证计费体系系统
- 格式:pdf
- 大小:489.54 KB
- 文档页数:9
http://www.paper.edu.cn
- 1 -基于MVC架构的Struts框架实现校园网认证计费体
系系统
刘祥颖
天津工业大学计算机技术与自动化学院,天津(300160)
E-mail:liuxiangying@tjpu.edu.cn
摘 要:本文针对当前校园网认证计费体系出现的网络安全与性能问题,提出了先进的
802.1x + Radius认证计费体系方案,采用基于MVC架构的Struts框架结构编程,实现了控
制器、视图和模型层的完全分离,易于修改,便于维护,具有良好的可扩展性。
关键词:MVC,Struts,Radius,802.1x协议,身份认证
1.引言
随着校园网的规模的扩大,缺乏合理的管理模式,缺乏灵活的计费策略,网络的安全
性及稳定性得不到保障等问题也逐渐暴露并显现出其严重性。因此,如何对网络中的各种资
源进行有效的管理和分配,已经成为高校校园网络管理者的一个重要课题。
本文结合MVC架构中基于J2EE的Struts模式,设计并实现了基于802.1x的校园网认
证及计费管理系统的解决方案。本系统采用802.1x + Radius认证计费体系方案,对用户身
份进行认证;使用Radius服务器实时采集数据,制定了灵活的计费策略对用户进行计费;
校园网络计费管理系统和用户自服务子系统,全面解决了上网用户身份认证、授权、上网时
间/流量计费、收费结算与费用查询、接入管理等宽带校园网络应用过程中面临的核心问题。
本文实现的校园网认证计费方案,与J2EE Struts架构进行了优化整合,实现了身份认
证系统、后台计费主系统和计费前端管理系统等主要功能。
2.系统设计方案
针对校园网建设的目前需求和以往认证及计费系统的弊端,本文开发和设计出基于
802.lx的认证及计费管理系统。该系统采用802.1x + Radius认证计费体系方案,对用户身份
进行认证;使用Radius服务器实时采集数据,制定了灵活的计费策略对用户进行计费;并
结合MVC架构中的基于J2EE的Struts模式设计的校园网络计费管理系统和用户自服务子
系统,全面解决了上网用户身份认证、授权、上网时间/流量计费、收费结算与费用查询、
接入管理等宽带校园网络应用过程中面临的核心问题。
2.1 802.1x认证协议
802.1x协议是基于Client/Server的访问控制和认证协议,它作为二层协议,不需要到
达三层,对设备的整体性能要求不高,可以有效降低建网成本;借用了在RAS系统中常用
的EAP(扩展认证协议),可以提供良好的扩展性和适应性,实现对传统PPP认证架构的
兼容;802.1x的认证体系结构中采用了“可控端口”和“不可控端口”的逻辑功能,从而可以实
现业务与认证的分离。由Radius和交换机利用不可控的逻辑端口共同完成对用户的认证与
控制,业务报文直接承载在正常的二层报文上通过可控端口进行交换,通过认证之后的数据
包是无需封装的纯数据包;可以使用现有的后台认证系统降低部署的成本,并有丰富的业务
支持;可以映射不同的用户认证等级到不同的VLANL;可以使交换端口和无线LAN具有http://www.paper.edu.cn
- 2 -安全的认证接入功能。
802.1x协议作为一种基于端口的网络接入控制技术,只关注LAN端口的开关,通过认
证时,LAN端口打开,否则端口处于关闭状态。认证的结果仅仅是LAN端口状态的改变,
不涉及传统认证技术必须考虑的IP地址协商与分配问题。因此,802.1x也是目前各种认证
技术中最易实现的一种解决方案之一。[1]
2.2 Radius认证
Radius(Remote Authorization Dial In User Service)是一个应用广泛的标准,用于对网
络用户的身份验证。它能提供安全性、身份认证和计费管理,提供对AAA的支持,即
Authentication(认证)、Authorization(授权)和Accounting(计费)。Radius计费为存储
的登录网络用户会话中搜集到的计费数据提供了可编程的接口。采用客户机/服务器模型,
其中客户机是网络访问服务器(Network Access Server,NAS),服务器是接收并存储来自
一个或多个NAS的计费数据的进程。他们之间的通信协议利用简单的Account-Request(账
户请求)包实现客户机到服务器的数据通信,利用Account-Response(账户应答)包作为回
应,表示数据已成功接收。
Radius计费采用可扩展的代码/长度/值的格式传输计费数据。协议只需选用新的代码,
就能够增加新的属性。据估计,未来厂商的Radius实现中将增加针对服务的数据类型,例
如:使用特定COS发送的数据,特定响应时间发送的数据以及其他策略信息,随着时间的
推移,这些数据类型可能成为标准代码。
2.3 系统设计框架
本系统采用802.1x + Radius认证计费体系方案。各子网内的用户通过运行客户端软件
输入用户名和密码,系统自动将该信息经由NAS(Network Access Server)传送至Radius
Server进行认证,身份验证通过后,由DHCP服务器给用户分配合法的IP地址(也可分配
固定IP),允许其使用整个网络资源,如果验证未能通过,用户只能在子网内进行通信。
通过安全登录、认证,用户才能取得合法的IP地址,用户的IP地址与用户的账号唯一对应,
通过网络管理软件,对用户使用网络的情况进行监控,有效地防止了IP地址盗用和非法用
户使用网络,保障了网络的安全。校园网认证及计费管理系统网络构架如图1所示:
http://www.paper.edu.cn
- 3 -
防火墙
radius服务器路由器
核心交换机
汇聚交换机mysql数据库
图1 校园网认证及计费管理系统网络构架
用户通过客户端连接交换机,交换机将用户请求信息通过非受控端口发送至Radius服
务器,进行身份认证,身份认证通过则打开交换机一个逻辑端口的受控端口,并利用受控端
口通信。交换机实时将流量和时间等信息传至Radius服务器,作为计费的原始数据。
3. MVC架构和Struts框架介绍
本系统采用基于MVC架构的Struts框架结构编程,为系统提供了一个友好的用户界面,
具有易于扩展和扩充,易于操作和管理等优点。
3.1 MVC的结构
MVC是Model-View-Controller的简称[2],即把一个应用的输入、处理、输出流程按照
Model、View、Controller的方式进行分离。这样一个应用被分成模型、视图和控制器三部
分。模型层表示数据和业务逻辑,视图层提供数据显示和用户输入,控制层负责派遣用户请
求和控制流程。图2显示了这几个模块各自的功能以及它们的相互关系:
应用MVC可以使多个视图能共享一个模型,同一个Web应用程序会提供多种用户界面,
业务逻辑和表示层分离,同一个模型可以被不同的视图重用,大大提高了代码的可重用性。
此外,控制器提高了应用程序的灵活性和可配置性。
http://www.paper.edu.cn
- 4 -
图2 MVC设计模式
3.2 Struts框架
Struts按照MVC模式的思想,提供了一种创建Web应用程序的框架。其中对应用程序
的用户界面表示和数据的后端逻辑处理代码进行了抽象,整合了Servlets和JSP在Web应
用开发上的优势以建立灵活,扩展性强,复用程度高的应用系统。Struts是一个“Web应用
框架”,实现了MVC设计模式,它同时包含了丰富的标记库和独立于该框架工作的实用程
序类,可以大大简化J2EE的Web应用开发。Struts的工作原理如图3所示:
图3 Struts的工作原理
4. 系统功能设计
4.1 计费系统软件结构 http://www.paper.edu.cn
- 5 -
图4 校园网计费系统软件结构图
在完成用户身份认证后,启用访问费用判断模块来判断用户是否具有足够金额访问网络
(账户金额>0),可根据实际情况断开或者保持用户的网络连接(通过控制受控端口的状态)。
在服务器强制断开用户网络连接或者用户主动断开网络连接时,用户此次使用网络的流量、
使用时间等信息自动写入数据库中。定时启动计费策略模块,计算出用户在定时范围内的网
络通信费用,修改数据库中的账户余额。
4.2 计费前端管理系统软件体系结构
计费管理系统层次结构图如图5所示:
图5 计费管理系统层次结构图
本认证及计费管理系统主要功能包括:
1. 身份认证系统:在校园网中实施基于802.1x + Radius的认证系统。用户输入用户名和 http://www.paper.edu.cn
- 6 -密码,报文送达交换机端口,此时交换机相应端口对于此用户来说是非授权状态,报文打上
相应端口的PVID,然后根据用户名所带域名送到相应域中进行认证,如果该域配置了radius
认证方式,那么交换机就把该报文转为radius报文送给相应的认证和计费服务器,认证和计
费服务器如果存在相应的用户名和密码,就返回认证成功消息给交换机,此时端口对此用户
变为授权状态,如果用户名不存在或者密码错误等,就返回认证不成功消息给交换机,端口
仍然为非授权状态。
2. 后台计费主系统:用于数据库中的计费信息进行统计汇总,并按照预先定义的计算规则
进行费用计算,生成计费账单,扣除用户预交费用等。
3. 计费前端管理系统:包括用户组的管理、用户的管理、计费策略管理、缴费管理、网络
查询管理、用户权限管理。用户自服务模块提供界面供用户直接查询流水、账单以及修改用
户信息等功能。
4.3 数据库总体设计
对于目前的网络来说,由于网络上的设备主要有交换设备和路由器,因此计费数据可从
交换设备和路由器上获得,实际上,该两种设备已经包含了计费所需的信息。在本解决方案
中,数据的采集可通过Radius协议直接把接入交换机上的数据读入认证服务器中。Radius
会自动在mysql数据库中创建表,这几个表表名如下[3]:nas,radacct,radcheck ,radgroupcheck,
radgroupreply,radreply ,radpostauth,usergroup,详情见图6所示:
图6 Radius认证计费数据表结构
5. 系统功能的实现
5.1 认证模块的实现
在网络最低端的接入层采用具有802.1x技术的交换机来达到对端口控制的目的。本系
统选择了Linux操作系统(RedHat Linux 7.2)作为服务器的平台。作为解决方案的核心,