Integrating Flex, BlazeDS, and Spring security

几乎所有的应用都会涉及到安全。虽然安全涉及范围广泛的领域,但本文侧重于应用更具体的安全性,用户认证和授权。认证验证用户是谁,授权验证当前用户是否有权做他想做的事。

 

为了说明这些概念,本文使用一个管理和列表显示书籍的示例应用来加以说明。Flex客户端使用BlazeDS与服务端的基于Spring框架的应用交互。示例是一个完整的应用程序,它展现了使用Flex客户端安全访问的多个方面。

 

Spring框架提供了一个安全模块Spring Security(以前称为Acegi),Spring Security模块负责认证及授权的远程服务。

 

安全问题
简而言之,一个安全的应用必须首先知道你是谁然后你允许访问什么资源。认证确保你是已知可信的用户,授权确定你要做的事是否被允许。Web Application中,认证是一个众所周知的领域,有多种认证方法,包括用户名/密码,指纹及令牌等。

富客户端应用的认证和Web Application是相同的,包括那些基于Flex的应用。

 

解决方案架构设计
该示例应用程序包括两个主要部分,客户端和服务器。客户端的架构很简单,它是一个Flex组件,部署为一个SWF文件,服务器

组件则稍复杂些(如图1)。

图1,Web应用程序架构视图,绿色部分是Spring框架模块,红色部分是Adobe模块,蓝色部分是其它模块(可能也使用了Spring功能)。从图上可以看出,有两个地方使用了Spring security。一是过滤URLs拦截Web访问;二是方法调用安全,因为暴露了Spring Beans使用Flex客户端通过BlazeDS可直接被访问到,所以这种方法级别的安全是非常重要的。

 

示例
示例应用展示了一个书籍清单,可以过滤和排序。为了说明使用不同的角色,只有系统管理员(adminis)可以添加新的书籍。

该示例使用Maven建立WAR文件和Flex SWF文件。了解Maven相关构建过程,请参照前几篇文章full stack。

图2展现了示例应用各组件概貌


图2 示例应用程序组件图,黄色组件是JAR文件,蓝色是WAR文件,红色是Flex SWF文件,灰色是配置文件。WAR文件是部署单位,它包括其它所有组件。

你可能感兴趣的:(spring,maven,应用服务器,Security,Flex)