Spring security在电子商务中的设计应用
2016-06-30蒋丛萃史卓
蒋丛萃++史卓
摘要:电子商务系统平台构建中,安全性是系统应用开发的灵魂,是产品生命各个周期各个阶段的关键指标,同时也是整个电子商务运用的重要节点。该文介绍了spring security的认证和权限控制,将spring security访问控制机制应用于电子商务中,从而给电子商务系统平台安全设计提供了强大的支持。
关键词 : Spring security;电商;访问控制
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)14-0247-02
当今社会电子商务已经取得了飞速发展,这在很大程度上得益于计算机技术的发展。电子商务是基于信息网络平台按一定标准所进行的各类商务活动的总称。这种网络电商操作相比实体经营店,不仅降低了营业成本,更极大地方便了消费者直接通过互联网购买需要的商品,提高了交易效率。而在电子商务中,客户及商家最关注的问题莫过于安全性问题。如何设计安全可靠的电子商务交易平台,成为了电商系统构建需要解决的问题。本文阐述spring security安全构架在电商系统平台设计中的应用。
1 Springsecurity安全构架简介
1.1 Springsecurity安全构架概要
Spring是基于Java语言而开发出的一站式Web框架。Spring框架包含以下子框架:SpringMVC,Spring, SpringSecurity, SpringAOP 等。在数据库访问层,Spring可以整合Hibernate、iBatis等第三方框架,通过整合构成一个完整的Web程序框架。
在电子商务实践中,应用设计需要有一定的开源架构作支撑,实现数据库运行的最终目的。这个开源架构即Spring。现存系统架构大多是单层体系架构,Spring程序框架可以将其整合为一个有机结合的统一整体,使得架构中各个层面能相互协调运作,而且各层面间不相互冲突,把程序架构的能动性最大限度地发挥出来。Spring使用了AOP(面向方面编程)技术来实现安全控制。 Spring框架中,Spring Security子系统负责整个框架的安全。Spring Security实现安全控制的方法就是基于Spring AOP。
认证和权限控制是Spring Security要处理的两个主要领域。首先需要实现系统安全逻辑和业务逻辑在设计层面上的分离,要实现这个目标需要采用Spring Security提供的项目安全认证服务。在安全控制层面,现行的绝大部分身份认证模式都可以被Spring Security所识别,其根本原因在于这些身份认证模式采用的是第三方厂商运作,整个研究机构是采用统一标准,缺乏自身的特色和特点,不利用整个系统本身的运作安全。而Spring Security恰恰解决了这样一个难题,其支持的认证机制有以下几种形式:
同时,Spring Security也提供了一组深入的权限控制服务。该权限控制服务主要面向三个领域: Web 请求的权限控制,方法调用的权限控制和单个对象实例访问的权限控制。
1.2 Springsecurity安全构架构成
从整个框架运行看,Spring Security的安全框架包含了安全拦截器和安全控制管理组件。具体来说,安全控制管理组件又由认证管理器,访问决策管理器、运行身份管理器、调用后管理器四大部分组成。这一组成有着自己独特的运行方式和特点。Spring Security安全框架组成元素如下图所示:
访问系统中受保护资源的所有请求,都需要通过安全栏截器的拦截判断。因此,安全栏截器被视为Spring Security框架中资源访问必经的“大门”。 辨别用户身份的功能则由认证管理器提供,一般采取用户凭证辨别(即户名和密码)的方法来实现此功能。用户审核后的身份凭证需要与目标资源的配置属性进行比较,这一步通过访问决策管理器来实现。经过比较,如果用户有权访问目标资源,则执行授权。当目标资源的访问权限发生变化时,则需要通过运行身份管理器来确认当前用户的权限是否与之相适应。用户是否有权查看目标资源的返回结果则依靠调用后管理器来实现。
2 Springsecurity安全构架在电子商务平台系统中的设计
在电子商务交易中,业务安全性是至关重要的,而业务安全性的保障就是系统平台的安全架构,一个优秀的安全架构能有效保障业务交易的平稳安全,对商家和客户来说都是必不可少的。可以说,任何电子商务业务都离不开安全机制的保障,当今电子商务发展迅速,系统的参与者和范围都逐步扩大,相应的业务流程也变得复杂,平台对安全性的要求也越来越高。
在当前电子商务应用的安全性方面,以下几个问题是普遍存在的:
1)业务逻辑和安全逻辑没有做到设计和操作上的相对独立,目前二者还是耦合的。造成这一现象的原因主要是目前的电子商务应用系统还在采用面向对象的开发方式。
2)目前大部分电子商务系统在业务方法的保护方面有所欠缺,在操作上仅仅简单控制了对Web资源的基本访问权限。
3)传统访问控制技术的应用给企业应用系统带来维护上的不便。
通过Spring Security技术,这使得AOP方法得到了进一步运用,系统身份和安全性能得到了很大提高,将安全系能和业务功能进行耦合,实现安全逻辑的提高,同时也使得业务逻辑进一步得到梳理。安全逻辑与业务逻辑是相对独立的一个系统,要保证两者之间目的的独立性,同时又要保证两者之间的平台运用的兼容性,使系统功能的可扩展性也得到了有效保障。
将Spring Security安全机制应用于电子商务平台中,其根本目的是为了保证应用系统的安全性,使得信息的管理更加科学,信息资源的保密程度更加固化。最大限度地保证系统信息资源的完整,同时也让系统安全管理有一定的灵活性和较好的通用易用性。系统的总体构架如下图所示:
Spring Security程序框架的设计包括以下几个部分:
2.1 系统权限设计
电子商务系统平台的基础就是权限设计。本文介绍的权限设计方法是基于角色的访问控制技术,具体过程如下:首先,将商家用户信息存储到系统用户表(sys—user)中,将角色信息存储到角色信息表(sys—group)中,将权限信息存储到权限信息表(sys junction)中。多个角色可能会共同拥有权限信息表中的目标资源,对于这种情况,需要建立角色/权限表(sys_group—fimction)对角色信息和权限信息进行唯一性定义。在具体操作过程中,将目标资源的url访问路径、业务方法等受保护的资源存储到权限控制码中。数据库的E-R关系图如上所示。
2.2 身份认证模块设计
系统的安全防护要经过的第一道关卡就是身份认证模块,该模块会对用户身份进行判断,只有符合规定的用户才能通过。身份认证模块统一栏截用户提交的业务访问请求,并对不同认证方式下的身份认证请求加以处理。用户可以采取不同的认证手段,身份认证模块,从实际情况出发,选取特定的认证提供者,在现用户身份上进行识别,这样的系统能够实现各种表单的认证,也可以实现证书的认证。如DAOAUTHENTICATIONPROVIDER可以实现普通的基于表单的认证、X509AUTHENTICATIONPROVIDER 可以实现基于 X.509 证书的认证。
统身份认证模块的时序图如下:
2.3 授权访问模块的设计
授权访问模块是在身份认证的基础上,建立起来的。系统首先要对用户身份的合法性进行判断,在此基础上再判读用户是否有权访问受保护资源。在授权访问中,Spring Security可以对其进行授权,根据访问请求,通过安全拦截器进行拦截,这种资源的访问拦截形式,可以实现业务逻辑与安全逻辑的一个耦合。通过两者之间的联系,进行平台过滤器,对其进行授权控制,使切面应用到各资源或者业务方法上,将相关的授权请求进行接收,从而根据权限进行判断,作出授权操作,实现这一安全机制的根本目标。
3 结束语
目前基于Spring Security技术的电商系统平台设计已经体现出一定的优越性,在商家及客户信息保护、安全交易方面都具有良好的操作性和实用性。通过其强大的认证和权限控制功能,为商家和客户的互联网交易提供了一个安全、便捷的环境。
参考文献:
[1] 丁振凡. 基于Spring Security的Web资源访问控制 [J]. 宜春学院学报, 2012(8).
[2] 肖云. 基于Spring Security安全的Web应用开发[J]. 计算机与现代化, 2011(6).
[3] 李琼. 基于Spring Security的企业级应用安全构架的研究与实现[M]. 北京交通大学, 2012(7).