- 浏览: 103483 次
- 性别:
- 来自: 南京
文章分类
最新评论
Acegi是为基于Spring的应用提供的声明式安全框架。它通过在Spring的应用上下文中配置一系列的Bean完成安全设置,完成利用了Spring提供的依赖注入和IoC编程方式。
为了保证Web应用的安全需求,Acegi使用过滤器拦截servlet请求,并执行认证来执行安全措施。
Acegi通过安全方法级调用来执行更低层次的安全需求。通过使用Spring的AOP,Acegi使用代理对象来确保用户有适当的权限来调用被保护的方法。
无论是较高层次的Web应用的安全,还是较低层次的方法级安全,Acegi都可以通过四个主要组件完成安全需求。
Security Interceptor 用于拦截那些需要访问受保护资源的请求。
Authentication Managers 用于验证主体的身份,如你的principal(典型的如用户名)和你的Credentials(典型的如密码)。能过验证,可以证明Who are you 。
Access Decision Mangers 用于决定已验证通过的principal是否有访问受保护资源的特权。
Run-as Managers 尽管你通过了验证和并得到授权可以访问资源,但可能还会有更多的安全约束:例如,你可能得到了查看某个Web页面的权力,但是页面中可以还有比Web页面安全级别更高的对象。Run-as manager 正是用于这方面的验证。尽管这方面的需求不多,但Acegi通过Run-as Managers可以做到这一点。
管理验证
Acegi定义了AuthenticationManager接口,用于安全验证,同时提供了代理类ProviderManager以及它的相关实现,它们可以完成大部分相应的功能,而不需要我们自己开发。
通过Acegi和CAS实现SSO
耶鲁大学的CAS是SSO的一个解决方案。CAS的细节内容已经超出了本文的讨论范围。为了理解Acegi如何与基于CAS验证的应用相结合的问题,有必要看一下一个典型的CAS验证例子是如何工作的。详见前面研究过的CAS的文档。
你应该理解的一个关键概念就是这个受保护的应用根本不处理用户的Credentials。当用户打算登录应时时,实际上他们登录的是CAS Server.。应用根本不知道用户的Credentials。唯一要做的就是验证用户的ticket是否有效,这个ticket是由CAS Server 发放的。这是一件好事,因为它意味着只有一个应用(即CAS)负责处理用户的验证。
当CAS与Acegi配合使用时,Acegi要做的就是在应用上校验CAS ticket的工作。这使得应用本身可以不管CAS的身份验证过程。
Acegi通过CasAuthenticationProvider类达到这个目的,它不关心用户名和密码,而是接受一个CAS Ticket作为它的Credentials。除了配置CasAuthenticationProvider类以外,还需要在Spring的配置文件中配置其它几个辅助类,它们分别是.CasProxyDecider及其子类。
访问控制
身份验证只是Acegi的第一步。一旦Acegi知道用户是谁,接下来它必须决定用户是否有权访问被保护的资源。这是通过 Access Decision Managers完成的。Acegi定义了net.sf.acegisecurity.AccessDecisionManager接口,它的supports()方法决定该应用是否有权做出访问控制,decide()方法最终是否可以访问,如果不可以访问该资源,应抛出AccessDeniedException。
AccessDecisionManager有三个实现类,分别是net.sf.acegisecurity.vote.AffirmativeBased,net.sf.acegisecurity.vote.ConsensusBased
net.sf.acegisecurity.vote.UnanimousBased。AccessDecisionManager做出决定并不是通过它自己,而是把轮询一个或更多年对象,这些对象对这个用户是否有权访问受保护的资源进行投票。一旦得到所有的投票,AccessDecisionManager会对这些投票进行计数,并做出最终决定。
保护Web应用
Acegi对Web应用的保护是强依赖于过滤器的。这些过滤器在请求被应用处理之前进行拦截,并进行安全控制。根据应用的实际需求,Acegi可以使用6个过滤器,它们分别是
过滤器
|
功能
|
Channel-processing filter
|
确保请求是通过SSL提交的(HTTPS)
|
Authentication-processing filter
|
接受验证请求,并将其导向验证管理器进行验证
|
CAS-processing filter
|
接受CAS服务的ticket作为经过CAS验证的证明
|
HTTP Basic authorization filter
|
Processes authentication performed using HTTP Basic authentication
|
Integration filter
|
Handles storage of authentication between requests (in HTTP Session,for example)
|
Security enforcement filter
|
Ensures that a user has been authenticated and meets the property
authorization requirements to access a secured web resource
|
接受一个请求以后,它以下面的顺序进行。
发表评论
-
规范的模板化项目架构管理
2012-05-03 23:31 848总在寻找项目开发简单化、标准化、统一化的开发管理方法,在项目 ... -
Java的ftp上传下载工具
2012-04-05 22:17 1719自己写的利用apache的net包写的ftp的上传、下 ... -
SmartGWT学习注意事项(一)
2012-03-31 20:42 1535首先表明,我 ... -
J2ME程序开发全方位基础讲解汇总
2007-08-03 14:19 619一、J2ME中需要的Java基础知识现在有大部分人,都是从零开 ... -
使用J2ME技术开发RPG游戏
2007-08-03 14:24 550RPG(角色扮演游戏)是手机游戏中的一类主要类型,也是相对来说 ... -
移动视频: QuickTime for Java API 入门
2007-08-05 12:45 620在 Java 平台上创建 iPod 视频内容 ... -
技术交流:QuickTime流媒体和Java(图)
2007-08-05 12:46 630这并不是即将问世的Quic ... -
JMF下载安装与支持格式
2007-08-05 12:47 853JMF开发进度不是很快,所以目前还是比较薄弱。 JMF,全名 ... -
搭建J2ME开发环境
2007-08-05 12:48 566由于WTK并没有提供代码编辑的功能,因此本文讲述如何使用Ecl ... -
JMF系统介绍
2007-08-09 15:18 698一.简介 1.1JMF 体系结构 ... -
Experiments in Streaming Content in Java ME(一)
2007-08-13 13:43 578Since my book on Mobile Media A ... -
Experiments in Streaming Content in Java ME(二)----Creating an RTSP Protocol Handler
2007-08-13 13:44 1446Recall that RTSP is the actual ... -
Experiments in Streaming Content in Java ME(三)-----Back to RTPSourceStream and StreamingDataSource
2007-08-13 13:46 1029With the protocol handler in pl ... -
java中文件操作大全
2007-08-22 15:40 554一.获得控制台用户输入的信息 /***//**获得控 ... -
Pocket PC、Pocket PC Phone、Smartphone的区别
2007-08-23 16:59 653首先说明几个概念: 1、什么是Pocket PC?Pocket ... -
Struts配置文件详解(来自csdn)
2007-11-30 08:35 497Struts应用采用两个基于X ... -
jBPM开发入门指南(5)
2007-11-30 08:45 510jBPM开发入门指南(5) 前篇说起要讲在JBPM中实现用 ... -
jBPM开发入门指南(4)
2007-11-30 08:48 587jBPM开发入门指南(4) 7 jBPM 的客户端 ... -
jBPM开发入门指南(3)
2007-11-30 08:51 6125 安装 jBPM 的 Eclipse 开发插件 有 ... -
jBPM开发入门指南(2)
2007-11-30 08:52 6234 数据库初始化 jBPM 需要数据库支持, jBPM ...
相关推荐
Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全...
Acegi安全框架简介及实用扩展,spring acegi 权限管理
Acegi安全框架是Spring Framework的一个强大补充,专为应用程序安全设计。它提供了全面的身份验证、授权和服务保护功能,使得开发者可以轻松地在Spring应用中实现复杂的安全需求。本例将探讨Acegi安全框架的主要概念...
Acegi安全框架是一款基于Spring AOP(面向切面编程)的高级安全认证和授权框架,它为Java应用程序提供了全面的安全管理解决方案。Acegi的核心功能包括用户身份验证、访问控制、会话管理以及密码加密等,使得开发者...
### 基于Spring的Acegi安全框架认证与授权的分析及扩展 #### 1. Acegi安全框架的概述 Acegi(后更名为Spring Security)是Spring框架中的一个子项目,专注于提供强大的安全功能,包括认证、授权以及保护web应用...
### 基于Acegi安全框架的权限管理研究与实现 #### 摘要与背景 在当前的软件开发领域,尤其是针对Java Web应用程序的安全性设计尤为重要。一个完整的Java Web应用系统不仅需要强大的功能模块来支撑业务逻辑,还需要...
Spring Framework是一个开发J2EE应用的优秀框架,Spring本身没有提供对系统安全方面的...使得系统的安全逻辑和业务逻辑完全分离,通过在Spring中引入Acegi安全框架不仅节省工作量,提高编码效率,同时提高代码质量。
把Acegi安全框架引入到SSH(表现层+控制层+持久层)架构中,对Acegi安全框架进行配置动态扩展,实现一个通用权限管理子系统畅对可能出现的问题进行分析,分别给出相应的解决方案。把子系统应用到一个账单管理系统中,其...
Acegi安全框架为Spring应用提供了全面的安全保护方案,通过灵活配置上述核心组件,开发者可以轻松实现不同层次的安全控制,确保应用程序的安全性和稳定性。无论是Web层的安全防护还是业务逻辑层的方法调用控制,...
文档的目的是确保用户能够成功地将AceGI安全框架集成到他们的应用程序中,利用CAS服务器进行单点登录(SSO)和身份验证,以提高系统的安全性。 0.2 文档范围: 此文档涵盖了从安装CAS服务器,配置AceGI安全策略,到...
为了解决这一问题,Acegi安全框架作为一种基于Spring的安全架构被提出并广泛应用。 #### Acegi安全框架概述 Acegi安全框架是一个基于Spring Framework的安全管理框架,能够与主流的Web容器无缝集成。它利用Spring...
Acegi-Spring安全框架是一个专为基于Spring的企业应用设计的安全框架,现在被称为Spring Security。它提供了声明式的安全访问控制,允许开发者在Spring容器中配置安全相关的Bean,利用Spring的依赖注入(IoC)和面向...
### Acegi安全框架详解 #### 引言 Acegi安全框架是专为Spring框架设计的安全解决方案,它通过深度集成Spring的特性,提供了一套全面、灵活的安全管理方案。不同于传统的安全框架,Acegi采用了面向切面编程(AOP)...
Acegi安全权限管理手册是一本全面介绍Acegi安全框架在权限管理方面应用的权威指南。Acegi Security是Spring框架的一个扩展,它为Java应用程序提供了强大的安全性和权限控制功能。在这个手册中,读者将深入理解如何...
【Acegi框架介绍 acegi安全与认证】 Acegi Security,现称为Spring Security,是一个强大的安全框架,主要用于基于Spring的企业级应用。它通过Spring的依赖注入(IoC)和面向切面编程(AOP)功能,提供了声明式的...
通过本实战教程,读者将学习到如何设置Acegi安全框架,创建自定义认证和授权逻辑,以及如何调试和优化安全配置,以确保Spring应用的安全性和稳定性。尽管Acegi已被Spring Security所取代,但其核心理念和使用方法在...
### 实践快速入门Acegi安全框架 #### 一、引言 Acegi安全框架作为Spring框架的一个重要子项目,提供了一套完整的安全解决方案,适用于基于Spring的企业级应用。本篇文章将根据提供的文件信息,深入探讨Acegi安全...
Acegi 安全框架是 Spring 框架的一个扩展,用于提供高级的身份验证和授权功能。在"使用 Acegi 保护 Java 应用程序:续二"这篇博文中,作者可能详细介绍了如何集成 Acegi 安全框架到 Java 应用程序中,以及如何配置和...
1. **Acegi安全框架**:Acegi是Spring的一个扩展,主要用于处理认证和授权问题,提供了一种声明式的安全控制方式。通过Acegi,开发者可以在控制器、服务层或者DAO层添加安全控制,无需在每个方法中手动检查权限。 2...
本文主要讨论的是如何在基于Spring框架的应用中实现权限控制系统,特别提到了Acegi安全框架的使用。Spring框架是一个流行的多层J2EE应用框架,它提供了IoC(控制反转)和AOP(面向切面编程)功能,但本身并不包含...