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>

chromium下载与编译

chromium下载与编译准备工作chromium源码的下载需要准备梯子,如果你还不知道怎么做,可以参考这里shadowsocks和proxifier的安装配置,你可能也想要参考这里depot_too...
  • yyinhai
  • yyinhai
  • 2016年12月08日 14:40
  • 2528

chromium 之python编译:文件R不存在问题

在做chromium的开发工作中,会遇到一些问题,现在简单记录两个: 1.
  • u011882998
  • u011882998
  • 2014年04月10日 19:15
  • 1554

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

1. CEFPython是什么东西 CEFPython 是 CEF 的 Python 绑定实现。 CEF https://bitbucket.org/chromiumembedded/ce...
  • i7thTool
  • i7thTool
  • 2016年12月21日 14:23
  • 3339

Chromium 代码研究的一些感想

自己研究 Chromium 的代码(主要是 Android WebView 这个平台的代码),也有相当长的一段时间了,在这里把自己的一些感想记录下来,如果对他人有所帮助,也算是有些益处。 在研究过程...
  • rogeryi
  • rogeryi
  • 2015年04月27日 15:11
  • 2935

acegi security实践教程—入门

Acegi Security概念     Acegi Security是基于J2EE的企业软件应用提供全面的安全服务。通俗的说,就是封装的安全框架。提到安全,大家脑子中第一反应肯定是权限控制。的确如此...
  • llhhyy1989
  • llhhyy1989
  • 2014年02月22日 22:23
  • 3941

Chromium 代码研究的一些感想

自己研究 Chromium 的代码(主要是 Android WebView 这个平台的代码),也有相当长的一段时间了,在这里把自己的一些感想记录下来,如果对他人有所帮助,也算是有些益处。 在研究过程...
  • rogeryi
  • rogeryi
  • 2015年04月27日 15:11
  • 2935

集成ACEGI 进行权限控制

一. 简单介绍 1.1 本文目的 集成Acegi到自己的项目中, 并且将用户信息和权限放到数据库, 提供方法允许权限动态变化,变化后自动加载最新的权限 本文介绍Acegi例子的时候采用的是ace...
  • dos_186
  • dos_186
  • 2015年08月11日 15:19
  • 386

Acegi Security -- Spring下最优秀的安全系统

二 Acegi安全系统的配置       Acegi 的配置看起来非常复杂,但事实上在实际项目的安全应用中我们并不需要那么多功能,清楚的了解Acegi配置中各项的功能,有助于我们灵活的运用Acegi...
  • ArmandXu
  • ArmandXu
  • 2015年12月15日 14:31
  • 1121

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

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

Spring读取配置文件,获取bean的几种方式

方法一:在初始化时保存ApplicationContext对象 代码: ApplicationContext ac = new FileSystemXmlApplicationContext("a...
  • za10056108
  • za10056108
  • 2016年09月01日 13:05
  • 3826
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring下用Acegi的配置文件实例
举报原因:
原因补充:

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