Spring下用Acegi的配置文件实例:一个简单但齐全的配置实例,所有参数都写在xml文件里,以后会贴出使用Hibernate调用数据库中用户身份、权限参数的例子。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 过滤器代理bean,代理其它过滤器-->
<bean name="filterBean" class="org.acegisecurity.util.FilterChainProxy" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
<property name="filterInvocationDefinitionSource">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/**=authentFilter,exceptionTranslationFilter,securityInterceptor
</value>
</property>
</bean>
<!-- 认证管理器-->
<bean id="aManager" class="org.acegisecurity.providers.ProviderManager" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
<property name="providers">
<list>
<ref bean="daoAProvider" />
<bean class="org.acegisecurity.providers.rememberme.RememberMeAuthenticationProvider">
<property name="key" value="changeThis"/>
</bean>
</list>
</property>
</bean>
<!-- 认证提供者,从数据库获得-->
<bean id="daoAProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
<property name="userDetailsService">
<ref bean="memoryUser"/>
</property>
</bean>
<!-- 内存DAO数据,存放用户信息,暂时,测试用-->
<bean id="memoryUser" class="org.acegisecurity.userdetails.memory.InMemoryDaoImpl" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
<property name="userMap">
<value>
chun2000=chun2000,ROLE_SUPERVISION
abc=abc,ROLE_USER</value>
</property>
</bean>
<!-- 访问决策管理器-->
<bean id="accessDecisionManager" class="org.acegisecurity.vote.UnanimousBased" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
<property name="decisionVoters">
<list>
<ref bean="roleVoter" />
</list>
</property>
</bean>
<!-- 投票决策-->
<bean id="roleVoter" class="org.acegisecurity.vote.RoleVoter" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default"></bean>
<!-- 安全拦截过滤器-->
<bean id="securityInterceptor" class="org.acegisecurity.intercept.web.FilterSecurityInterceptor" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
<property name="objectDefinitionSource">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/do/*=ROLE_SUPERVISION
/show.jsp=ROLE_USER
</value>
</property>
<property name="authenticationManager">
<ref bean="aManager" />
</property>
<property name="accessDecisionManager">
<ref bean="accessDecisionManager"/>
</property>
</bean>
<!-- 记住我服务-->
<bean id="rembermeService" class="org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
<property name="userDetailsService">
<ref bean="memoryUser"/>
</property>
<property name="key">
<value>Can be change</value>
</property>
</bean>
<!-- 基于表单的身份验证过滤器-->
<bean id="authentFilter" class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
<property name="filterProcessesUrl">
<value>/j_acegi_security_check</value>
</property>
<property name="defaultTargetUrl">
<value>/do/showStudent</value>
</property>
<property name="authenticationManager">
<ref bean="aManager" />
</property>
<property name="authenticationFailureUrl">
<value>/MyJsp.jsp</value>
</property>
<property name="rememberMeServices">
<ref bean="rembermeService" />
</property>
</bean>
<!-- 身份验证认证入口点-->
<bean id="authenticationProcessingFilterEntryPoint" class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
<property name="loginFormUrl">
<value>/MyJsp.jsp</value>
</property>
<property name="forceHttps">
<value type="boolean">false</value>
</property>
</bean>
<!-- 异常过滤器 -->
<bean id="exceptionTranslationFilter" class="org.acegisecurity.ui.ExceptionTranslationFilter" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
<property name="accessDeniedHandler">
<bean class="org.acegisecurity.ui.AccessDeniedHandlerImpl" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
<property name="errorPage">
<value>/AccessDenied.jsp</value>
</property>
</bean>
</property>
<property name="authenticationEntryPoint">
<ref bean="authenticationProcessingFilterEntryPoint"/>
</property>
</bean>
</beans>
|