隨筆-31  評論-7  文章-0  trackbacks-0

            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自己會配置吧~~那啥,我就不說了

              本貼個人原創,如有不正確之處,請指正...... 


          文章來源:http://www.cnblogs.com/xiaoao808/archive/2008/07/18/1246286.html
          posted on 2008-07-18 18:39 破名超難起 閱讀(78) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 大埔县| 安远县| 陆丰市| 黄龙县| 于田县| 谷城县| 洛扎县| 长春市| 丹寨县| 刚察县| 锡林浩特市| 石楼县| 彭阳县| 吐鲁番市| 南宫市| 封开县| 广州市| 安仁县| 永定县| 旌德县| 柘荣县| 横峰县| 正蓝旗| 孟连| 兰州市| 天水市| 镇远县| 乐至县| 南昌县| 辛集市| 汝城县| 普洱| 修水县| 黔西| 和龙市| 正阳县| 祥云县| 嘉义县| 常熟市| 舒城县| 富平县|