ACEGI配置总结(1)

  Acegi配置总结
1、 在web.xml中配置contextConfigLocation,并且配置acegi filter chain即过滤器链
例如:
  

<! —配置过滤器链-- >    
< filter >
    
< filter-name > Acegi Filter Chain Proxy </ filter-name >
     
< filter-class > org.acegisecurity.util.FilterToBeanProxy </ filter-class >
        
< init-param >
            
< param-name > targetClass </ param-name >
            
< param-value > org.acegisecurity.util.FilterChainProxy </ param-value >
        
</ init-param >
</ filter >
  
<! —配置过滤器链过滤范围-- >
< filter-mapping >
      
< filter-name > Acegi Filter Chain Proxy </ filter-name >
      
< url-pattern > /* </ url-pattern >
</ filter-mapping >
<!-- 将事物提交给web applicationContext -->
    
< listener >
< listener-class > org.acegisecurity.ui.session.HttpSessionEventPublisher </ listener-class >
    
</ listener >

2、在applicationContext-acegi.xml中配置
 1-配置过滤器链

  < bean  id ="filterChainProxy"  class ="org.acegisecurity.util.FilterChainProxy" >
      
<!-- 配置过滤器链的内容及其执行顺序 -->
      
< property  name ="filterInvocationDefinitionSource" >
         
< value > <![CDATA[
      CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
      PATTERN_TYPE_APACHE_ANT
            /**=httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,basicProcessingFilter,securityContextHolderAwareRequestFilter,rememberMeProcessingFilter,anonymousProcessingFilter,switchUserProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor
         
]]> </ value >
      
</ property >
    
</ bean >

另外,从某论坛上看到,如果配置文件中出现<>""等字符时除了可以用html符号外还可以用<![CDATA[ ]]> 来包含配置信息
 
 2-

<!-- 最先要配置的过滤器,用于提供安全上下文实例 -->
 
< bean  id ="httpSessionContextIntegrationFilter"
  class
="org.acegisecurity.context.HttpSessionContextIntegrationFilter"   />

 
 3-

<!--  登出过滤器  -->
 
< bean  id ="logoutFilter"
  class
="org.acegisecurity.ui.logout.LogoutFilter" >
  
< constructor-arg  value ="/logoutSuccess.jsp"   />
  
< constructor-arg >
   
< list >
    
< bean
     
class ="org.acegisecurity.ui.logout.SecurityContextLogoutHandler"   />
   
</ list >
  
</ constructor-arg >
 
</ bean >

 4-

<!--  登陆验证过滤器  -->
 
< bean  id ="authenticationProcessingFilter"
  class
="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter" >
  
<!--  验证管理器  -->
  
< property  name ="authenticationManager"
   ref
="authenticationManager"   />
  
<!--  验证失败后跳转到的页面  -->
  
< property  name ="authenticationFailureUrl"
   value
="/login.jsp?login_error=1"   />
  
<!-- 登陆成功时跳转到的页面 -->
  
< property  name ="defaultTargetUrl"
   value
="/index.jsp" />
  
< property  name ="filterProcessesUrl"
   value
="/j_acegi_security_check"   />
 
</ bean >
 


 5-

<!-- 配置验证管理器 -->
  
< bean  id ="authenticationManager"  class ="org.acegisecurity.providers.ProviderManager" >
       
< property  name ="providers" > <!-- 提供者属性 -->
   
< list > <!-- 配置其依赖的DAO -->
      
< ref  local ="daoAuthenticationProvider" /> <!-- 基于数据库提供验证 -->
      
< ref  local ="PasswordDaoAuthenticationProvider" /> <!-- 基于数据库提供验证,但让底层的数据源完成实际的身份验证。 -->
      
< ref  local ="anonymousAuthenticationProvider" /> <!-- 匿名验证 -->
       
< ref  local ="rememberMeAuthenticationProvider" /> <!-- 再次登陆时从缓存中验证 -->
   
</ list >
       
</ property >
    
</ bean >

 

  6-

<!-- 数据提供者 -->
   
< bean  id ="daoAuthenticationProvider"  class ="org.acegisecurity.providers.dao.DaoAuthenticationProvider" >
   
< property  name ="userDetailsService" >< ref  local ="jdbcDaoImpl" /></ property >
   
< property  name ="userCache" >< ref  local ="userCache" /></ property > <!--  用户缓存,可选  -->
    
< property  name ="passwordEncoder" >< ref  local ="passwordEncoder" /></ property > <!-- 密码加密,可选 -->
    
</ bean >

 7

<!-- 配置用户缓存,可选 -->
  
< bean  id ="cacheManager"  class ="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" />

     
< bean  id ="userCacheBackend"  class ="org.springframework.cache.ehcache.EhCacheFactoryBean" >
        
< property  name ="cacheManager" >
    
< ref  local ="cacheManager" />
        
</ property >
        
< property  name ="cacheName" >
    
< value > userCache </ value >
        
</ property >
     
</ bean >

     
< bean  id ="userCache"  class ="org.acegisecurity.providers.dao.cache.EhCacheBasedUserCache" >
        
< property  name ="cache" >< ref  local ="userCacheBackend" /></ property >
     
</ bean >

 8- 

< -- 密码加密,可选,共3种方式-- >
  
< bean  id ="passwordEncoder"  class ="org.acegisecurity.providers.encoding.PlaintextPasswordEncoder" /> <!-- 不加密,默认 -->
  
< bean  id ="passwordEncoder"  class ="org.acegisecurity.providers.encoding.Md5PasswordEncoder" /> <!-- MD5加密 -->
  
< bean  id ="passwordEncoder"  class ="org.acegisecurity.providers.encoding.SHAPasswordEncoder" />< --SHA 加密-- >

 
 9- 

<!-- 配置jdbcDaoImpl -->
  
< bean  id ="jdbcDaoImpl"  class ="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl" >
   
< property  name ="dataSource" >< ref  bean ="dataSource" /></ property >
   
</ bean >

10-配置DateSource
    DateSource自己会配置吧~~那啥,我就不说了

    本贴个人原创,如有不正确之处,请指正...... 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值