`
weishuwei
  • 浏览: 326368 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

初次接触Acegi记录的

阅读更多

[?xml version="1.0" encoding="UTF-8"?]
[!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"]
[beans]
 [!---过滤器代理bean_1级-----------------------------------------------------------]
 [!--  if you wish to use channel security, add "channelProcessingFilter," in front
  of "httpSessionContextIntegrationFilter" in the list below --]
 [!--FilterChainProxy是对FilterToBeanProxy的一个封装;该过滤器代理用来调度一下过滤器bean--]
 [bean id="filterChainProxy"
  class="org.acegisecurity.util.FilterChainProxy"]
  [property name="filterInvocationDefinitionSource"]
   [value]
    CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
    PATTERN_TYPE_APACHE_ANT
    [!--        /**=httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,basicProcessingFilter,securityContextHolderAwareRequestFilter,rememberMeProcessingFilter,anonymousProcessingFilter,switchUserProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor --]
    /**=httpSessionContextIntegrationFilter,authenticationProcessingFilter,rememberMeProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,concurrentSessionFilter,filterInvocationInterceptor
   [/value]
  [/property]
 [/bean]

 [!---以下是上面用到的几个过滤器_2级-----------------------------------------------]
 [!--该过滤器是用来[Integration:综合;]把认证信息记录到Session中的;--]
 [bean id="httpSessionContextIntegrationFilter"
  class="org.acegisecurity.context.HttpSessionContextIntegrationFilter"]
  [property name="context"]
   [value]org.acegisecurity.context.SecurityContextImpl[/value]
  [/property]
 [/bean]

 [!--authenticationProcessingFilter处理登陆请求.当身份验证成功时,
 AuthenticationProcessingFilter会在会话中放置一个Authentication对象,
 并且重定向到登录成功页面--]
 [bean id="authenticationProcessingFilter"
  class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter"]
  [property name="authenticationManager"]
   [ref bean="authenticationManager" /]
  [/property]
  [property name="authenticationFailureUrl"]
   [value]/Login.html?login_error=1[/value]
  [/property]
  [property name="defaultTargetUrl"]
   [value]/app/index.action[/value]
  [/property]
  [property name="filterProcessesUrl"]
   [value]/j_acegi_security_check[/value]
  [/property]
 [/bean]

 [!--RememberMeProcessingFilter是以cookie的形式来保存认证信息的.--]
 [bean id="rememberMeProcessingFilter"
  class="org.acegisecurity.ui.rememberme.RememberMeProcessingFilter"]
  [property name="authenticationManager"]
   [ref local="authenticationManager" /]
  [/property]
  [property name="rememberMeServices"]
   [ref local="rememberMeServices" /]
  [/property]
 [/bean]

 [!--anonymousProcessingFilter是在匿名的时候(这时候是没有认证信息的)给这个用户分配一个匿名的认证信息--]
 [bean id="anonymousProcessingFilter"
  class="org.acegisecurity.providers.anonymous.AnonymousProcessingFilter"]
  [property name="key"]
   [value]foobar[/value]
  [/property]
  [property name="userAttribute"]
   [value]anonymousUser,ROLE_ANONYMOUS[/value]
  [/property]
 [/bean]

 [!--exceptionTranslationFilter异常转换过滤器,
 主要是处理AccessDeniedException和AuthenticationException,
 将给每个异常找到合适的"去向" --]
 [bean id="exceptionTranslationFilter"
  class="org.acegisecurity.ui.ExceptionTranslationFilter"]
  [property name="authenticationEntryPoint"]
   [ref local="authenticationProcessingFilterEntryPoint" /]
  [/property]
 [/bean]

 [!--该过滤器一般用来控制同一用户名只有一个人在线--]
 [!-- fifth item in chain: ConcurrentSessionFilter --]
 [bean id="concurrentSessionFilter"
  class="org.acegisecurity.concurrent.ConcurrentSessionFilter"]
  [property name="sessionRegistry"]
   [ref local="sessionRegistry" /]
  [/property]
  [property name="expiredUrl"]
   [value]/[/value]
  [/property]
 [/bean]

 [!--ilterSecurityInterceptor拦截URL的类(实际上它算是个过滤器)--]
 [!-- Note the order that entries are placed against the objectDefinitionSource is critical.
  The FilterSecurityInterceptor will work from the top of the list down to the FIRST pattern that matches the request URL.
  Accordingly, you should place MOST SPECIFIC (ie a/b/c/d.*) expressions first, with LEAST SPECIFIC (ie a/.*) expressions last --]
 [bean id="filterInvocationInterceptor"
  class="org.acegisecurity.intercept.web.FilterSecurityInterceptor"]
  [property name="authenticationManager"]
   [ref bean="authenticationManager" /]
  [/property]
  [property name="accessDecisionManager"]
   [ref local="httpRequestAccessDecisionManager" /]
  [/property]
  [property name="objectDefinitionSource"]
   [value]
    PATTERN_TYPE_APACHE_ANT
    /**/*.jpg=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMIN
    /**/*.gif=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMIN
    /**/*.png=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMIN
    /**/*.css=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMIN
    /**/*.js=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMIN
    /remote/**=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMIN
    /Login.html*=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMIN
    /app/userRegInput.action*=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMIN
    /app/validateRegInput.action*=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMIN
    /app/agree.action*=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMIN
    /app/actcodeValidation.action*=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMIN
    /remoteclient/**=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMIN
    /sysadmin/**=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMIN
    /**=ROLE_USER,ROLE_ADMIN
   [/value]
  [/property]
 [/bean]

 [!---以下是上面几个过滤器使用到的类_3级--------------------------------------------]
 
 [!--认证管理器,用于认证ContextHolder中的Authentication对象。--]
 [bean id="authenticationManager"
  class="org.acegisecurity.providers.ProviderManager"]
  [property name="providers"]
   [list]
    [ref local="daoAuthenticationProvider" /]
    [ref local="anonymousAuthenticationProvider" /]
    [ref local="rememberMeAuthenticationProvider" /]
   [/list]
  [/property]
  [property name="sessionController"]
   [ref bean="concurrentSessionController" /]
  [/property]
 [/bean]

 [!-- 授权管理器 --]
 [bean id="httpRequestAccessDecisionManager"
  class="org.acegisecurity.vote.AffirmativeBased"]
  [property name="allowIfAllAbstainDecisions"]
   [value]false[/value]
  [/property]
  [property name="decisionVoters"]
   [list]
    [ref bean="roleVoter" /]
   [/list]
  [/property]
 [/bean]

 [bean id="rememberMeServices"
  class="org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices"]
  [property name="userDetailsService"]
   [ref local="userSecurtyDetails" /]
  [/property]
  [property name="key"]
   [value]springRocks[/value]
  [/property]
 [/bean]
 
 [!-- 当抛出AccessDeniedException时,将用户重定向到登录界面。
 属性loginFormUrl配置了一个登录表单的URL,当需要用户登录时,
 authenticationProcessingFilterEntryPoint会将用户重定向到该URL --]
 [bean id="authenticationProcessingFilterEntryPoint"
  class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint"]
  [property name="loginFormUrl"]
   [value]/Login.html[/value]
  [/property]
  [property name="forceHttps"]
   [value]false[/value]
  [/property]
 [/bean]

 [bean id="sessionRegistry"
  class="org.acegisecurity.concurrent.SessionRegistryImpl" /]

 [!---以下是被过滤器使用的类的关联的类_4级--------------------------------------------]
 [bean id="daoAuthenticationProvider"
  class="org.acegisecurity.providers.dao.DaoAuthenticationProvider"]
  [property name="userDetailsService"]
   [ref local="userSecurtyDetails" /]
  [/property]
  [property name="userCache"]
   [ref local="userCache" /]
  [/property]
  [!-- [property name="passwordEncoder"][ref local="passwordEncoder"/][/property]--]
 [/bean]

 [bean id="anonymousAuthenticationProvider"
  class="org.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider"]
  [property name="key"]
   [value]foobar[/value]
  [/property]
 [/bean]

 [bean id="rememberMeAuthenticationProvider"
  class="org.acegisecurity.providers.rememberme.RememberMeAuthenticationProvider"]
  [property name="key"]
   [value]springRocks[/value]
  [/property]
 [/bean]

 [!-- ConcurrentSessionController 这个用来控制同一用户只有一个人登陆--]
 [bean id="concurrentSessionController"
  class="org.acegisecurity.concurrent.ConcurrentSessionControllerImpl"]
  [property name="maximumSessions"]
   [value]1[/value]
  [/property]
  [property name="sessionRegistry"]
   [ref local="sessionRegistry" /]
  [/property]
 [/bean]

 [bean id="userSecurtyDetails"
  class="org.springframework.aop.framework.ProxyFactoryBean"]
  [property name="target"]
   [ref local="Authentication" /]
  [/property]
  [!-- property name="interceptorNames"]
   [list]
   [value]transactionInterceptor[/value]
   [/list]
   [/property --]
 [/bean]

 [!-- An access decision voter that reads AUTH_* configuration settings --]
 [bean id="roleVoter" class="org.acegisecurity.vote.RoleVoter"]
  [!-- set that this voter can only used for AUTH_ started roles! --]
 [/bean]

 [!---以下是第4级关联的类_5级------------------------------------------------]
 [bean id="userCache"
  class="org.acegisecurity.providers.dao.cache.EhCacheBasedUserCache"]
  [property name="cache"]
   [ref local="userCacheBackend" /]
  [/property]
 [/bean]

 [!--我们自定义的AuthenticationProvider类实现了UserDetailsService接口,该接口由acegi提供,该接口就声明了一个抽象方法
  loadUserByUsername(String userName)throws UsernameNotFoundException, DataAccessException;该方法返回
  UserDetails类型 --]
 [bean id="Authentication"
  class="cn.com.s520.leopard.framework.authority.AuthenticationProvider"]
  [property name="userdao"]
   [ref bean="userMemberDAO" /][!-- 这里是引用外部的bean --]
  [/property]
 [/bean]

 [!---以下是第5级关联的类_6级---------------------------------------------]
 [bean id="userCacheBackend"
  class="org.springframework.cache.ehcache.EhCacheFactoryBean"]
  [property name="cacheManager"]
   [ref local="cacheManager" /]
  [/property]
  [property name="cacheName"]
   [value]userCache[/value]
  [/property]
 [/bean]

 [!---以下是第6级关联的类_7级------------------------------------------]
 [bean id="cacheManager"
  class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" /]

 [!---以下是acegi提供的工具类,以上bean暂时没用到,我放到这里--------------------------------]
 [!-- 密码加密 --]
 [bean id="passwordEncoder"
  class="org.acegisecurity.providers.encoding.Md5PasswordEncoder" /]

[/beans]

分享到:
评论

相关推荐

    acegi

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

    Acegi使用.pdf

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

    ACEGI

    不错的ACEGI 教程

    Acegi框架介绍 acegi安全与认证

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

    基于java的ACEGI

    AceGI,全称为Acegi Security,是Java领域中一个用于Spring框架的安全组件,它提供了全面的身份验证、授权和会话管理功能。这个框架在早期的Spring版本中非常流行,为开发者构建安全的Web应用程序提供了强大的支持。...

    spring acegi 详细文档

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

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

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

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

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

    Spring Acegi权限控制

    在Web应用中,当用户尝试登录时,系统会验证提供的凭证是否匹配数据库中的记录。 - **授权**:是指确定已认证的用户可以访问哪些资源或执行哪些操作的过程。这通常基于角色分配,即用户拥有特定的角色,每个角色有一...

    Acegi-spring安全框架

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

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

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

    acegi-security 1.0.2

    acegi-security 1.0.2.jar

    acegisecurity内所有jar包

    包含acegi-security-1.0.7.jar,acegi-security-1.0.7-sources.jar,acegi-security-cas-1.0.7.jar,acegi-security-cas-1.0.7-sources.jar,acegi-security-catalina-1.0.7.jar,acegi-security-catalina-1.0.7-...

    acegi的使用

    在用户通过认证和授权之后,运行时身份管理器可能会执行一些额外的操作,例如记录活动、更新会话状态等。最后,如果所有安全检查都通过,用户就能访问受保护的资源。 Acegi 的核心组件协同工作,构建了一个强大的...

    acegi使用说明acegi原理及如何与spring、hibernate结合

    Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全...

    acegi-src1.0.5

    acegi,spring的安全验证框架

    spring acegi 使用工程demo

    Spring Acegi是一个安全框架,它为Spring应用提供了全面的安全管理功能。这个"spring acegi 使用工程demo"显然是一个示例项目,旨在帮助开发者理解和实践如何在Spring应用中集成和使用Acegi安全框架。 首先,Acegi...

    acegi安全策略与CAS整合

    AceGI安全策略与CAS(Central Authentication Service)整合是企业级应用中常见的安全解决方案,它能够为Web应用程序提供统一的身份验证和授权服务。本文档旨在详细阐述这一整合过程,包括配置步骤、所需资源以及...

    acegi安全框架简介

    Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全...

Global site tag (gtag.js) - Google Analytics