`

Acegi(三): Acegi? Who are you?

阅读更多

Acegi是个什么?
        是一个基于Spring的开源框架,用来做安全控制. 基于Spring? 能不能在不用Spring的情况下配置Acegi呢?Acegi官网上有一个链接:Use  Withou Spring ,看来是可以的,自己还没有动手做过. 实现安全控制? 原理是什么? Servlet的Filter和AOP机制: 利用Filter, Acegi实现了基于Web实用的URI保护; 通过AOP,Acegi实现了对象访问方法的保护;利用ACL,Acegi实现了对prototype类型的Object进行过滤和保护。

Acegi的核心概念是什么?类似实现又哪些?
        Acegi本质上是一种security solution的实现.
        而一般而言,security solution都有哪些基本概念呢? 基本概念有两个:认证(Authentication )与授权(Authorization). 随便说一下, 我一直认为这两个词翻译的很不直观, 若光看这两个字,觉得很是摸不着头脑. 我们来看下Acegi官方文档的解释。 authentication is the process of establishing a principal is who they claim to be. A "principal" generally means a user, device or some other system which can perform an action in your application. 这里边有个核心词principal,通俗的理解是要在咱们所写系统中操作的东东, 这个东东可以是人(当然这是最见的),可以是某一个别的什么设备(机器人啥的,呵呵),还可以是别的系统。有了这个,authentication的理解 就顺理成章了: authentication 就是看看要操作咱们系统的东东是不是真的,这在实际应用中大多是通过密码验证来实现的, 也就是对暗号,如暗号对上了,你就是真的了。 而Authorization呢? "Authorization" refers to the process of deciding whether a principal is allowed to perform an action in your application. 上面我们说到一个principal要操作咱们的系统,假若这个principal是真的, 那接下来很自然的就是看Ta有没有权限来做Ta想要的操作了. 这也正是Authorization要干的事儿.
      有了这两个根本的概念,接下的所有事理解起来就容易了. 这个接下来的事就是Acegi怎么设计实现. 要是自己来设计实现那还真是个问题, 不过看别人的还不至于那么难.
     
      对这两个最核心的概念说的有点多了, 下面看下Acegi的类似实现,也就是Acegi的兄弟们,以及跟他们相比,Acegi自身又有什么优势.
    
      要说Acegi的兄弟, 人们最容易想起来的还是JAAS.大家知道, 这是Java EE里标准实现, 那是由于JAAS的什么缺点致使小弟Acegi把风头给抢了呢? JAAS配置繁琐、提供的安全访问机制粒度不够和JAAS在WAR和EAR层面上没有移植性这些缺点是江湖流传很广的说法, 当然本人也没机会做这方面的详细比较,姑且就人云亦云地接受这种说法吧。

      另外一个兄弟我也是这些天刚认识, 一个叫Crowd的框架, 由于一点也没有接触过,也就不刚妄下判断。看一些文章知道这个Crowd可以跟Acegi结合起来用,想必是它弥补了些Acegi的缺点吧。

核心部件都有哪些?
    按理解的深度,Acegi有两个层次上的核心部件。第一层的核心部件是以配置的角度来看的, 也就是说我们要想配置一个Acegi保护的系统都要涉及到哪些. 第二层是实现的核心, 也就是说它们整个Acegi就玩不转了. 这个第二层跟配置不一样, 第一层所说的配置仅仅是应用的一方面,Acegi可以有多种实用并加自己的扩展, 而所有所有的这一切都是围绕第二层的核心部件组建的.
    第一层的部件放到下一篇结合实例来说明,这里重点说下实现层面上的核心部件,它们依次是:SecurityContextHolder , SecurityContext , HttpSessionContextIntegrationFilter(这个虽放到这里,它在这里也可以说是代表了它们一个群体) , Authentication , GrantedAuthority , UserDetails , UserDetailsService . 一共七个, 我们在这里称之为"七剑". 写到这里,脑子里隐隐约约感觉到老子的道家思想了. 你看, Acegi的核心思想是"保护", 围绕这个核心思想分出两个概念Authentication 和Authorization, 具体到怎么来实现这个两个概念就有了我们所说的"七剑", 再往下就是针对不同场合应用的支撑,而再往下就是现在千千万万项目中用到的Acegi配置及扩展.这一个演变系列是不是有点像"道生一,一生二,二生三,三生万物"呢?
    对这"七剑"的理解很重要, 只有理解了它们,才能达到万变不离其宗地灵活配置.

    这"七剑"在这也先不展开讨论, 等在体会了实例及分析了"第一层核心部件"后再回过头看吧, 那样理解上更自然些.

    絮絮叨叨写了不少, 回头总结下,也为下篇写下开头: 这篇以静态的角度了Acegi的核心概念及其核心部件, 下一篇中将动手配置一个小例子,来个真切感受下Web实用中围绕"七剑"都有哪些部件可用。

4
0
分享到:
评论
1 楼 javacool_zhou 2009-07-07  
小弟也在学习这个呢,呵呵

相关推荐

    实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架

    Acegi是一个专门为SpringFramework应用提供安全机制的开放源代码项目,全称为Acegi Security System for Spring,当前版本为 0.8.3。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和...

    实战Acegi:使用Acegi作为基于Spring框架的WEB应

    而Acegi Security是Spring社区早期的一个安全模块,它提供了全面的身份验证、授权和会话管理功能,为基于Spring的应用程序提供了强大的安全性支持。本实战教程将深入探讨如何将Acegi Security集成到Spring框架中,...

    敏捷Acegi、CAS构建安全的Java系统(part2)共四part

    JAVA开发专家:敏捷Acegi、CAS:构建安全的Java系统 pdf

    实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.pdf

    《实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架》这本书提供了一个很好的起点,它详细介绍了如何设置和使用Acegi,以及如何解决实际开发中的安全问题。 总的来说,Acegi为基于Spring的Web应用提供...

    实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.rar

    Acegi是Spring Security的前身,它是一个强大的、可配置的安全框架,用于构建安全的Java Web应用程序。本实战教程将深入探讨如何将Acegi集成到基于Spring的Web应用中,以实现用户认证、授权以及安全控制等功能。 ...

    acegi

    Acegi 是一个在Java开发领域,特别是Spring框架中曾经广泛使用的安全组件,全称为Acegi Security。这个系统为Spring应用程序提供了全面的安全管理解决方案,包括身份验证、授权、会话管理以及安全事件处理等功能。...

    基于java的ACEGI

    在《实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.pdf》中,可能会详细讲解如何配置和使用Acegi。以下是一些关键步骤: 1. **添加依赖**:首先,在项目中引入Acegi的依赖库,通常是通过Maven或...

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

    Acegi是Spring Security的前身,它是一个用于Java企业级应用的安全框架,提供了全面的身份验证、授权和会话管理功能。这个压缩包包含了Acegi的示例代码和一个学习资源,对于初学者来说是非常宝贵的资料。 首先,让...

    Acegi(四):Acegi初体验及初解剖

    Acegi是Spring Security的前身,它是一个非常强大的安全框架,用于保护基于Spring的应用程序。这篇博客的标题"Acegi(四):Acegi初体验及初解剖"表明我们将深入探讨Acegi的基础用法和内部机制。尽管Acegi已经被Spring ...

    使用acegi控制用户权限实例

    Acegi Security是Spring框架早期的一个安全模块,它提供了全面的基于Spring的应用程序的访问控制和身份验证功能。在本文中,我们将深入探讨如何使用Acegi Security来实现用户权限的控制。 Acegi Security的核心功能...

    权限Acegi的使用

    在实际应用中,我们通常会遵循以下步骤来使用Acegi: 1. **集成Acegi**:将Acegi库添加到项目的类路径中,并在Spring配置文件中声明Acegi的安全配置。 2. **配置安全上下文**:定义安全上下文,指定认证和授权的...

    ACEGI

    Acegi Security是一个专门为Spring框架设计的权限控制框架,旨在为基于J2EE的企业级应用程序提供全面的安全服务。这个框架解决了J2EE规范中安全性配置不便于移植的问题,使得应用程序的安全设置能够在不同服务器环境...

    Acegi框架介绍 acegi安全与认证

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

    ldap与Acegi? ----Acegi配置文件解剖

    被解剖的acegi配置文件. 博文链接:https://rmn190.iteye.com/blog/175041

    acegi安全策略与CAS整合

    - AceGI:AceGi Security,一个用于Spring Web应用的安全框架。 - CAS:Central Authentication Service,中心认证服务,提供单一登录解决方案。 - SSO:Single Sign-On,单点登录,用户只需登录一次就能访问所有...

    spring acegi 详细文档

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

    acegi-context-cas.xml

    acegi与cas集成 <!-- ========= Acegi as a CAS Client的配置============= --> class="org.acegisecurity.ui.cas.CasProcessingFilter"> ref="authenticationManager" /> value="/login.do?...

    Acegi-spring安全框架

    Acegi-Spring安全框架是一个专为基于Spring的企业应用设计的安全框架,现在被称为Spring Security。它提供了声明式的安全访问控制,允许开发者在Spring容器中配置安全相关的Bean,利用Spring的依赖注入(IoC)和面向...

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

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

    使用Acegi作为基于Spring框架的WEB应用的安全框架

    Acegi Security,现已被Spring ...结合"acegi-sample.war"和"实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.pdf",开发者可以更好地理解和掌握Acegi Security的使用方法,从而提升Web应用的安全性。

Global site tag (gtag.js) - Google Analytics