几乎所有的应用都会涉及到安全。虽然安全涉及范围广泛的领域,但本文侧重于应用更具体的安全性,用户认证和授权。认证验证用户是谁,授权验证当前用户是否有权做他想做的事。
为了说明这些概念,本文使用一个管理和列表显示书籍的示例应用来加以说明。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文件是部署单位,它包括其它所有组件。
分享到:
相关推荐
Hands-On Spring Security 5 for Reactive Applications starts with the essential concepts of reactive programming, Spring Framework, and Spring Security. You will then learn about a variety of ...
第九章:与其他框架和语言集成Spring Security(Integrating Spring Security with Other Frameworks and Languages) - 集成策略:探讨与不同语言和框架集成Spring Security的策略和方法,如与.NET、Ruby、Python等...
标题“integrating Spring and DWR”表明我们正在讨论如何整合Spring框架与Direct Web Remoting (DWR)技术。DWR是一种允许在JavaScript和Java之间进行实时、双向通信的开源库,使得Web应用能够实现类似桌面应用的...
**安全模式**(Security Patterns)是一种经过验证的设计方案或配置,用于解决特定的安全问题或需求。它可以帮助开发人员在设计阶段就考虑到潜在的安全威胁,并采取相应的预防措施。安全模式通常包括对问题的描述、...
* Spring’s AOP support, both classic and new Spring AOP, integrating Spring with AspectJ, and load-time weaving. * Simplifying data access with Spring (JDBC, Hibernate, and JPA) and managing ...
《Integrating Voice and Data Networks》是由Cisco Press出版的一本经典教材,主要面向网络管理人员、开发人员以及希望使用Cisco公司的语音和数据集成产品的CCIE(Cisco Certified Internetwork Expert,思科认证...
Other recipes cover topics such as using and integrating Boot with Spring's enterprise services, Spring Integration, testing, monitoring and more. What You'll Learn Get reusable code recipes and ...
Understand how to secure your Spring Web and standalone applications using Spring Security declaratively and consistently Get to grips with the end-to-end development of an API-based modern SPA using ...
Expand your imagination by letting go of the limitations of traditional animation mediums, software packages, or workflows and integrating 2D and 3D assets. With the updated and expanded second ...
- **Version Control Integration**: Integrating version control systems like Git or SVN into Eclipse can streamline your workflow and improve collaboration. - **Performance Optimization**: Flex ...
《通过实例与场景融合实现语义场景完成》 语义场景完成是一种旨在从单视图深度或RGBD图像中精确重建三维场景的像素级语义任务,它是室内场景理解中的关键但具有挑战性的问题。本文提出了一种名为场景-实例-场景网络...