`
victorKevin
  • 浏览: 13741 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

原创 Acegi 1.03 安全机制

阅读更多
xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  3. <beans>  
  4.   
  5.  <!-- Acegi  security-->  
  6.     
  7.  <!-- FilterChainProxy -->  
  8.  <!--注意:配置时要按业务要求排定过滤链处理的顺序-->  
  9.  <bean id="filterChainProxy" class="org.acegisecurity.util.FilterChainProxy">  
  10.    <property name="filterInvocationDefinitionSource">  
  11.      <value>  
  12.      CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON   
  13.      PATTERN_TYPE_APACHE_ANT   
  14.      /**=httpSessionContextIntegrationFilter,authenticationProcessingFilter,securityContextHolderAwareRequestFilter,remeberMeProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterSecurityInterceptor   
  15.      </value>  
  16.    </property>  
  17.  </bean>  
  18. <!-- Channel Servlet 过滤器 -->  
  19.      <bean id="channelProcessingFilter" class="org.acegisecurity.securechannel.ChannelProcessingFilter">  
  20.       <property name="channelDecisionManager">  
  21.         <ref bean="channelDecisionManager"/>  
  22.       </property>  
  23.       <property name="filterInvocationDefinitionSource">  
  24.         <value>  
  25.            CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON   
  26.            PATTERN_TYPE_APACHE_ANT   
  27.            /usersjsp/**=REQUIRES_INSECURE_CHANNEL   
  28.            /*.do=REQUIRES_INSECURE_CHANNEL  
  29.            /*=REQUIRES_INSECURE_CHANNEL   
  30.         </value>  
  31.       </property>  
  32.      </bean>  
  33.      <bean id="channelDecisionManager" class="org.acegisecurity.securechannel.ChannelDecisionManagerImpl">  
  34.        <property name="channelProcessors">  
  35.          <list>  
  36.            <ref bean="secureChannelProcessor"/>  
  37.            <ref bean="insecureChannelProcessor"/>  
  38.          </list>  
  39.        </property>  
  40.      </bean>  
  41.      <bean id="secureChannelProcessor" class="org.acegisecurity.securechannel.SecureChannelProcessor"></bean>  
  42.      <bean id="insecureChannelProcessor" class="org.acegisecurity.securechannel.InsecureChannelProcessor"/>  
  43.     
  44.  <!-- LogOut Filter -->  
  45.   
  46.  <!-- SecurityContextHolderAwareRequestFilter 过滤器 -->  
  47.   <bean id="securityContextHolderAwareRequestFilter" class="org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter">  
  48.   </bean>  
  49.      
  50.        
  51. <!-- ExceptionTranslationFilter 过滤器 -->  
  52.  <bean id="exceptionTranslationFilter" class="org.acegisecurity.ui.ExceptionTranslationFilter">  
  53.   <property name="authenticationEntryPoint">  
  54.     <ref local="authenticationProcessingFilterEntryPoint"/>  
  55.   </property>  
  56.   <property name="accessDeniedHandler">  
  57.     <bean class="org.acegisecurity.ui.AccessDeniedHandlerImpl">  
  58.       <property name="errorPage" value="/ErrorJSP/accessDenied.jsp"/>  
  59.     </bean>  
  60.   </property>  
  61.  </bean>  
  62.  <bean id="authenticationProcessingFilterEntryPoint" class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">  
  63.   <property name="loginFormUrl"><value>/security/SecurityLogin.jsp?error=2</value></property>  
  64.   <property name="forceHttps"><value>false</value></property>  
  65.      
  66.  </bean>  
  67.     
  68.  <!-- Authenication Process Filter 过滤器 -->  
  69.  <bean id="authenticationProcessingFilter" class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter">  
  70.    <property name="filterProcessesUrl">  
  71.      <value>/security/j_acegi_security_check</value>  
  72.    </property>  
  73.    <property name="authenticationManager">  
  74.      <ref local="authenticationManager"/>  
  75.    </property>  
  76.    <property name="defaultTargetUrl">  
  77.    <value>/forumShow.do</value>  
  78.    </property>  
  79.    <property name="authenticationFailureUrl">  
  80.     <value>/security/SecurityLogin.jsp?error=1</value>  
  81.    </property>  
  82.    <property name="rememberMeServices">  
  83.     <ref local="rememberMeServices"/>  
  84.    </property>  
  85.  </bean>  
  86.  <!-- DAO authentication Provider -->  
  87.  <bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">  
  88.   <property name="userDetailsService"><ref local="userDetailsService"/></property>  
  89.     
  90.  </bean>  
  91.  <!-- In memory DAO Implmention -->  
  92.  <bean id="userDetailsService" class="org.acegisecurity.userdetails.memory.InMemoryDaoImpl">  
  93.   <property name="userMap">  
  94.     <value>  
  95.        victor=1234,ROLE_SUPERVISOR   
  96.        kevin=1234,ROLE_USER   
  97.     </value>  
  98.   </property>  
  99.  </bean>  
  100.     
  101.  <!-- Concurrent Session Controller -->  
  102.  <bean id="concurrentSessionController" class="org.acegisecurity.concurrent.ConcurrentSessionControllerImpl">  
  103.   <property name="maximumSessions"><value>1</value></property>  
  104.   <property name="sessionRegistry">  
  105.   <bean class="org.acegisecurity.concurrent.SessionRegistryImpl"></bean>  
  106.   </property>  
  107.  </bean>  
  108.   
  109. <!-- HttpSession Integration Filter-->    
  110. <bean id="httpSessionContextIntegrationFilter" class="org.acegisecurity.context.HttpSessionContextIntegrationFilter">  
  111. </bean>  
  112. <!-- 过滤安全拦截器 -->  
  113. <bean id="filterSecurityInterceptor" class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">  
  114.  <property name="authenticationManager">  
  115.    <ref local="authenticationManager"/>  
  116.  </property>  
  117.  <property name="accessDecisionManager">  
  118.    <ref local="accessDecisionManager"/>  
  119.  </property>  
  120.   
  121.  <property name="objectDefinitionSource">  
  122.    <value>  
  123.    CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON   
  124.    PATTERN_TYPE_APACHE_ANT   
  125.       
  126.    /security/securitylogin.jsp=ROLE_ANONYMOUS,ROLE_SUPERVISOR   
  127.    /forumshow.do=ROLE_ANONYMOUS,ROLE_SUPERVISOR,ROLE_USER   
  128.    /viewjsp/index.jsp=ROLE_ANONYMOUS,ROLE_SUPERVISOR,ROLE_USER   
  129.    /**=ROLE_SUPERVISOR,ROLE_ANONYMOUS   
  130.    </value>  
  131.  </property>  
  132. </bean>  
  133.   
  134.  <!--================== Access decision Manager ======================-->  
  135.  <bean id="accessDecisionManager" class="org.acegisecurity.vote.AffirmativeBased">  
  136.  <property name="decisionVoters">  
  137.    <list>  
  138.     <ref bean="roleVoter"/>  
  139.    </list>  
  140.  </property>  
  141.  <property name="allowIfAllAbstainDecisions">  
  142.    <value>false</value>  
  143.  </property>  
  144.  </bean>  
  145.     
  146.  <!-- Role voter -->  
  147.  <bean id="roleVoter" class="org.acegisecurity.vote.RoleVoter"></bean>  
  148.     
  149.  <!-- Authenication Manager -->  
  150.  <bean id="authenticationManager" class="org.acegisecurity.providers.ProviderManager">  
  151.  <property name="providers">  
  152.   <list>  
  153.    <ref local="daoAuthenticationProvider"/>  
  154.    <bean class="org.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider">  
  155.      <property name="key" value="changeThis"></property>  
  156.    </bean>  
  157.    <bean  class="org.acegisecurity.providers.rememberme.RememberMeAuthenticationProvider">  
  158.    <property name="key">  
  159.      <value>victorOK</value>  
  160.    </property>  
  161.    </bean>  
  162.   </list>  
  163.  </property>  
  164.  </bean>  
  165.  <!-- Remember me Process Filter -->  
  166.  <bean id="remeberMeProcessingFilter" class="org.acegisecurity.ui.rememberme.RememberMeProcessingFilter">  
  167.     <property name="authenticationManager">  
  168.      <ref local="authenticationManager"/>  
  169.     </property>  
  170.    <property name="rememberMeServices">  
  171.     <ref local="rememberMeServices"/>  
  172.    </property>  
  173.   </bean>  
  174.  <bean id="rememberMeServices" class="org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices">  
  175.    <property name="userDetailsService">  
  176.      <ref local="userDetailsService"/>  
  177.    </property>  
  178.    <property name="key">  
  179.      <value>victor</value>  
  180.    </property>  
  181.  </bean>  
  182. <!-- 密码 编码器 -->  
  183.  <bean id="passwordEncoder" class="org.acegisecurity.providers.encoding.Md5PasswordEncoder"></bean>  
  184.     
  185.  <!-- 登录事件监听器 -->  
  186.  <bean id="loggerListener" class="org.acegisecurity.event.authentication.LoggerListener"></bean>  
  187.     
  188.   
  189.  <!-- 匿名 过滤器 -->  
  190.     
  191.  <bean id="anonymousProcessingFilter" class="org.acegisecurity.providers.anonymous.AnonymousProcessingFilter">  
  192.    <property name="key">  
  193.      <value>victorOK</value>  
  194.    </property>  
  195.    <property name="userAttribute">  
  196.      <value>anonymousUser,ROLE_ANONYMOUS</value>  
  197.    </property>  
  198.  </bean>  
  199. </beans>  
分享到:
评论

相关推荐

    acegi应用安全J2EE安全

    Acegi Security是Spring社区早期开发的一个安全框架,用于增强J2EE应用程序的安全性。这个框架在Spring Security(之前称为Acegi Security)的后续版本中得到了发展和改进,成为了Spring生态中的核心组件。本文将...

    acegi安全框架简介

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

    Acegi安全系统介绍.doc

    - **实现机制:**使用Spring AOP技术,Acegi能够在方法执行前进行安全检查。 - **应用场景:**适用于需要对业务逻辑中的敏感操作进行访问控制的情况。 - **配置方式:**通过配置AspectJ表达式或其他Spring AOP机制,...

    acegi安全策略与CAS整合

    在Web应用中, AceGI提供了一套强大的访问控制和身份验证机制,而CAS则作为外部认证服务器,可以为多个应用提供统一的用户验证。通过整合两者,可以简化用户登录流程,同时加强整体系统的安全性。 1.2 环境: 整合...

    Acegi-spring安全框架

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

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

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

    Acegi安全框架简介及实用扩展

    Acegi安全框架简介及实用扩展,spring acegi 权限管理

    Acegi 数据库配置安全策略 源代码及图解

    此外,还包含了一些UML图解,帮助我们更直观地理解Acegi的安全机制。 1. **Acegi安全框架**:Acegi是Spring的一个扩展,主要用于处理认证和授权问题,提供了一种声明式的安全控制方式。通过Acegi,开发者可以在控制...

    acegi安全框架例子

    5. **过滤器链**:Acegi基于Spring的过滤器链机制,可以拦截和处理请求,执行身份验证和授权检查。这种设计使得它可以与任何Servlet容器无缝集成。 6. **异常处理**:Acegi处理与安全相关的异常,如未认证、未授权...

    Acegi安全权限管理手册

    Acegi提供了一套完整的异常处理机制,当安全检查失败时,可以自定义错误页面和重定向策略,以提升用户体验。 8. **集成其他Spring组件**: Acegi Security与Spring的其他模块如Spring MVC、Spring AOP有很好的...

    Acegi安全系统详解

    Acegi安全系统是Spring Framework中的一个强大的安全组件,它的核心目标是为企业级应用提供全面而灵活的安全服务。Acegi的特点在于其非入侵式的安全架构,它通过Servlet Filter和Spring AOP来实现,使得业务逻辑与...

    acegi

    - **过滤器链(Filter Chain)**:Acegi 使用过滤器链来拦截请求,执行安全检查,这是其实现安全控制的关键机制。 2. **Acegi 的主要组件** - **AuthenticationManager**:处理用户的登录请求,负责身份验证。 -...

    Acegi安全系统介绍

    Acegi 安全系统是一个专为基于 Spring 的应用程序设计的安全框架,它利用 Spring 的依赖注入和面向切面编程(AOP)能力来提供强大的安全保护。Acegi 的核心功能包括安全拦截器、认证管理器、访问决策管理器和运行...

    acegi 安全框架实例

    Acegi安全框架是一款基于Spring AOP(面向切面编程)的高级安全认证和授权框架,它为Java应用程序提供了全面的安全管理解决方案。Acegi的核心功能包括用户身份验证、访问控制、会话管理以及密码加密等,使得开发者...

    基于spring的Acegi安全框架认证与授权的分析及扩展.pdf

    ### 基于Spring的Acegi安全框架认证与授权的分析及扩展 #### 1. Acegi安全框架的概述 Acegi(后更名为Spring Security)是Spring框架中的一个子项目,专注于提供强大的安全功能,包括认证、授权以及保护web应用...

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

    Acegi 提供了一套全面的安全机制,包括但不限于: 1. 认证(Authentication):确认用户的身份,通常通过用户名和密码。 2. 授权(Authorization):基于角色的访问控制(RBAC),允许或拒绝用户访问特定资源。 3. ...

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

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

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

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

    Acegi安全系统详解.doc

    Acegi安全系统是Spring Framework的一个重要组件,专用于提供企业级的安全服务。它是一个非侵入式的安全架构,能够确保应用程序的安全性与业务逻辑相分离,使得系统结构更加清晰。Acegi通过Servlet Filter和Spring ...

Global site tag (gtag.js) - Google Analytics