`

Acegi学习小结 (转载)

阅读更多
一、基本原理
Acegi认证授权主要基于两大技术,一是Filter机制,二是AOP的拦截机制。通过FilterSecurityInterceptor很好地实现了对URI的保护,通过MethodSecurityInterceptor实现了对Service的方法的拦截保护,通过ACL 实现了对prototype类型的Object进行过滤和保护。

二、基本概念
HttpSessionContextIntegrationFilter 存储SecurityContext in HttpSession
ChannelProcessingFilter 重定向到另一种协议,如http到https

ConcurrentSessionFilter 因为不使用任何SecurityContextHolder的功能,但是需要更新SessionRegistry来表示当前的发送请求的principal,通过在web.xml中注册Listener监听Session事件,并发布相关消息,然后由SessionRegistry获得消息以判断当前用户的Session数量。

AuthenticationProcessingFilter 普通认证机制(大多数用这个)

CasProcessingFilter CAS认证机制

BasicProcessingFilter Http协议的Basic认证机制

HttpRequestIntegrationFilter Authentication 从容器的HttpServletRequest.getUserPrincipal()获得

JbossIntegrationFilter 与Jboss相关。

SecurityContextHolderAwareRequestFilter 与servlet容器结合使用。

RememberMeProcessingFilter 基于Cookies方式进行认证。

AnonymousProcessingFilter 匿名认证。

ExceptionTranslationFilter 捕获所有的Acegi Security 异常,这样要么返回一个HTTP错误响应或者加载一个对应的AuthenticationEntryPoint

AuthenticationEntryPoint 认证入口

三、Acegi认证授权流程
1、FilterToBeanProxy 负责代理请求给FilterChainProxy

2、FilterChainProxy 方便的将多个Filter串联起来,如上面基本概念中提到的各种Filter,当然如果对URI进行授权保护,也可以包含FilterSecurityInterceptor。注意各Filter的顺序。

3、AbstractSecurityInterceptor 调度中心。负责调用各模块完成相应功能。
FilterSecurityInterceptor 对URI进行拦截保护
AspectJSecurityInterceptor 对方法进行拦截保护
MethodSecurityInterceptor 对方法进行拦截保护

4、AuthenticationManager 用户认证
-> AuthenticationProvider 实际进行用户认证的地方(多个)。
-> UserDetailsService 返回带有GrantedAuthority的UserDetail或者抛出异常。

5、AccessDecisionManager(UnanimousBased/AffirmativeBased/ConsensusBased) 授权
-> AccessDecisionVoter(RoleVoter/BaseAclEntryVoter) 实际投票的Voter(多个).

6、RunAsManager 变更GrantedAuthority

7、AfterInvocationManager 变更返回的对象
-> BaseInvocationProvider 实际完成返回对象变更的地方(多个)。

四、Acegi实例

http://www.iteye.com/topic/43341
分享到:
评论

相关推荐

    acegi学习整理合集

    "学习Acegi-认证(authentication) - Acegi 专栏 - JavaEye知识库.mht"和"Acegi学习小结 - Acegi 专栏 - JavaEye知识库.mht"可能提供了更深入的认证学习材料和作者的学习心得,包括可能遇到的问题和解决方案,这对于...

    Acegi学习笔记(JAVA系统安全编程时用到)

    Acegi 是一个强大的 Java 安全框架,专用于系统安全编程,尤其在处理认证和授权方面表现出色。在本文中,我们将深入探讨 Acegi 的基本概念、如何设置以及它如何与 Spring 框架集成。 首先,让我们了解 Acegi 的核心...

    Acegi学习笔记--Acegi详解实战Acegi实例

    通过学习Acegi,我们可以了解到Web应用安全的基本思路和实践方法,这对于理解现代的Spring Security框架非常有帮助。虽然Acegi已经不再更新,但它的理念和架构仍对现代安全框架设计产生深远影响。

    acegi

    Acegi 是一个在Java开发领域,特别是Spring框架中曾经广泛使用的安全组件,全称为Acegi Security。...学习Acegi可以帮助我们更好地理解Spring Security的工作原理,从而提升我们的应用安全开发能力。

    Acegi例子代码+一个很好的学习Acegi的网址

    这个压缩包包含了Acegi的示例代码和一个学习资源,对于初学者来说是非常宝贵的资料。 首先,让我们深入理解Acegi的核心概念: 1. **身份验证(Authentication)**:Acegi允许你实现自定义的身份验证机制,这包括...

    acegi学习

    Acegi学习是一个深入探讨Java平台上的安全性框架的主题。Acegi是Spring Framework的早期安全模块,为基于Spring的应用程序提供了强大的身份验证和授权功能。在Java世界中,安全性和权限管理是构建任何企业级应用不可...

    spring acegi 学习心得

    前段时间复习了spring怎么做权限的技术,spring acegi 学习心得.记下来勉励自己.

    acegi学习指南以及例子

    在本文中,我们将深入探讨Acegi的学习指南,通过实例来理解其核心概念和功能。 首先,我们需要了解Acegi的基础概念。Acegi的核心组件包括SecurityContext、Authentication、Authorization和FilterChainProxy。...

    ACEGI

    不错的ACEGI 教程

    Acegi学习

    Acegi学习 Acegi是Spring Security的前身,它是一个强大且灵活的安全框架,用于Java企业级应用程序。在本文中,我们将深入探讨Acegi的核心概念、功能以及如何在实际项目中应用它。 首先,我们需要理解Acegi的核心...

    基于java的ACEGI

    AceGI,全称为Acegi ...理解Acegi对于学习和使用Spring Security仍然大有裨益,因为它可以帮助我们更好地理解Web应用程序的安全设计和实现。在实际开发中,掌握Acegi的相关知识可以提升我们构建安全系统的专业能力。

    acegi学习笔记

    ### Acegi学习笔记详解 #### 一、Acegi Security概览 **Acegi Security**,作为Spring Security的前身,是一个深度融入Spring Framework的安全框架,它为开发者提供了一套全面的安全解决方案,尤其在Web应用程序中...

    acegi——笔记学习

    通过深入学习Acegi,你可以了解Spring Security的基本架构和原理,这对于理解现代的Spring Security配置和使用非常有帮助。尽管Acegi已不再更新,但其思想和技术仍在Spring Security中得到沿用和发展。如果你正在...

    acegi资料大全-全集

    `Acegi学习小结-Spring-Java -JavaEye做最棒的软件开发交流社区.mht`可能是一个社区成员的学习笔记,汇总了他在使用Acegi过程中遇到的问题和解决办法,这类资料往往能提供实战中的宝贵经验。 `学习Acegi-认证...

    Acegi框架介绍 acegi安全与认证

    【Acegi框架介绍 acegi安全与认证】 Acegi Security,现称为Spring Security,是一个强大的安全框架,主要用于基于Spring的企业级应用。它通过Spring的依赖注入(IoC)和面向切面编程(AOP)功能,提供了声明式的...

    spring acegi 详细文档

    Spring Acegi是一个安全框架,它为Spring应用提供了一套强大的身份验证和授权机制。这个框架在Spring Security(之前称为Spring Security)之前被广泛使用。在本文中,我们将深入探讨Spring Acegi的核心概念、功能和...

    Acegi-spring安全框架

    然而,尽管Acegi非常强大,它也有不足之处,如学习曲线较陡峭,配置复杂,对于初学者来说可能较为困难。此外,随着Spring Security的发展,Acegi的一些功能可能已经被更新的版本替代或优化,因此在使用时需要考虑其...

    Acegi使用.pdf

    - **学习曲线**:对于初次接触的开发者而言,Acegi的复杂性和灵活性可能会带来较高的学习成本。 #### 结论 Acegi安全框架凭借其独特的设计和高度的灵活性,成为了Spring框架下处理安全问题的强大工具。通过深入...

Global site tag (gtag.js) - Google Analytics