Spring下用Acegi的配置文件实例

原创 2006年06月08日 17:41:00
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>

相关文章推荐

使用 CEFPython 打造自己的浏览器视图

1. CEFPython是什么东西 CEFPython 是 CEF 的 Python 绑定实现。 CEF https://bitbucket.org/chromiumembedded/ce...

spring配置文件实例

  • 2014年08月15日 15:19
  • 3KB
  • 下载

acegi配置文件

  • 2008年07月07日 18:22
  • 15KB
  • 下载

spring 框架中的依赖注入(IOC--设值注入)---使用xml简单配置文件---的具体实例的简单实现

体现了具体项目工程里面的分层,dao,daoImpl,service,serviceImpl,action。让你真正的理解这为啥分层。 毕竟当年我刚刚毕业的时候,再找工作我就不是很清楚为什么有这么几层...

【Spring学习04】实例化上下文对象及加载多个配置文件

一、实例化上下文对象从前面的例子可以看到,在代码中实例化上下文对象非常简单,如下面的例子:ApplicationContext ctx = new ClassPathXmlApplicationCon...
  • soonfly
  • soonfly
  • 2017年03月30日 20:58
  • 669

Spring的配置文件实例

Spring的配置文件实例如下:   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="...

javaWeb项目SpringMVC3.2.1与Mybatis3.0.4整合实例(Mybaits-spring配置文件的几种方式)之一SqlSessionDaoSupport方式

网上有许多关于SpringMVC与Mybatis整合的实例,但是由于Mybaits-spring有好几种配置方式,这样看起来会觉得很乱,不知道哪个是对的,觉得很复杂(至少我的感觉是这样的)。把关于这块...

Spring加载配置文件和三种Bean实例化

加载classpath:      new ClassPathXmlApplicationContext("applicationContext.xml");     加载classpath下配置文...

Spring MVC Junit测试实例 附:读取WEB-INF下配置文件的方法

原文:http://blog.csdn.net/yeohcooller/article/details/7631202 Spring+Unit测试实例: 之前写过一个连接数据库的sprin...

Spring MVC Junit测试实例 附:读取WEB-INF下配置文件的方法

Spring+Unit测试实例: 之前写过一个连接数据库的spring mvc annotation的一个实例(点击这里查看)。 当我们启动Web项目时要先启动Tomcat,而在Tomcat的启动...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring下用Acegi的配置文件实例
举报原因:
原因补充:

(最多只允许输入30个字)