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
破名超難起 閱讀(76)
評論(0) 編輯 收藏