`

Pathway from ACEGI to Spring Security 2.0

阅读更多

Pathway from ACEGI to Spring Security 2.0

This article outlines how to convert your existing ACEGI based Spring application to use Spring Security 2.0.

What is Spring Security 2.0

Spring Security 2.0 has recently been released as a replacement to ACEGI and it provides a host of new security features:

Goal

Currently I work on a Spring web application that uses ACEGI to control access to the secure resources. Users are stored in a database and as such we have configured ACEGI to use a JDBC based UserDetails Service. Likewise, all of our web resources are stored in the database and ACEGI is configure to use a custom AbstractFilterInvocationDefinitionSource to check authorization details for each request.
With the release of Spring Security 2.0 I would like to see if I can replace ACEGI and keep the current ability to use the database as our source of authentication and authorization instead of the XML configuration files (as most examples demonstrate).

Here are the steps that I took...

Steps

  1. The first (and trickiest) step was to download the new Spring Security 2.0 Framework and make sure that the jar files are deployed to the correct location. (/WEB-INF/lib/)
    There are 22 jar files that come with the Spring Security 2.0 download. I did not need to use all of them (especially not the *sources packages). For this exercise I only had to include:
    • spring-security-acl-2.0.0.jar
    • spring-security-core-2.0.0.jar
    • spring-security-core-tiger-2.0.0.jar
    • spring-security-taglibs-2.0.0.jar
  2. Configure a DelegatingFilterProxy in the web.xml file.
    1. <filter>  
    2.     <filter-name>springSecurityFilterChain</filter-name>  
    3.     <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>  
    4. </filter>  
    5. <filter-mapping>  
    6.     <filter-name>springSecurityFilterChain</filter-name>  
    7.     <url-pattern>/*</url-pattern>  
    8. </filter-mapping>  
  3. Configuration of Spring Security 2.0 is far more concise than ACEGI, so instead of changing my current ACEGI based configuration file, I found it easier to start from a empty file. If you do want to change your existing configuration file, I am sure that you will be deleting more lines than adding.

    The first part of the configuration is to specifiy the details for the secure resource filter, this is to allow secure resources to be read from the database and not from the actual configuration file. This is an example of what you will see in most of the examples:
    1. <http auto-config="true" access-denied-page="/403.jsp">  
    2.     <intercept-url pattern="/index.jsp" access="ROLE_ADMINISTRATOR,ROLE_USER"/>  
    3.     <intercept-url pattern="/securePage.jsp" access="ROLE_ADMINISTRATOR"/>  
    4.     <intercept-url pattern="/**" access="ROLE_ANONYMOUS" />  
    5. </http>  
    Replace this with:
    1. <authentication-manager alias="authenticationManager"/>  
    2.       
    3. <beans:bean id="accessDecisionManager" class="org.springframework.security.vote.AffirmativeBased">  
    4.     <beans:property name="allowIfAllAbstainDecisions" value="false"/>  
    5.     <beans:property name="decisionVoters">  
    6.         <beans:list>  
    7.             <beans:bean class="org.springframework.security.vote.RoleVoter"/>  
    8.             <beans:bean class="org.springframework.security.vote.AuthenticatedVoter"/>  
    9.         </beans:list>  
    10.     </beans:property>  
    11. </beans:bean>  
    12.   
    13. <beans:bean id="filterInvocationInterceptor" class="org.springframework.security.intercept.web.FilterSecurityInterceptor">  
    14. <beans:property name="authenticationManager" ref="authenticationManager"/>  
    15.     <beans:property name="accessDecisionManager" ref="accessDecisionManager"/>  
    16.     <beans:property name="objectDefinitionSource" ref="secureResourceFilter" />  
    17. </beans:bean>  
    18.       
    19. <beans:bean id="secureResourceFilter" class="org.security.SecureFilter.MySecureResourceFilter" />  
    20.   
    21. <http auto-config="true" access-denied-page="/403.jsp">  
    22.     <concurrent-session-control max-sessions="1" exception-if-maximum-exceeded="true" />  
    23.     <form-login login-page="/login.jsp" authentication-failure-url="/login.jsp" default-target-url="/index.jsp" />  
    24.     <logout logout-success-url="/login.jsp"/>  
    25. </http>  
分享到:
评论

相关推荐

    Spring Security 2 参考手册 中文版 (html格式)

    `z-pathway-acegi-spring-security.html`可能涉及Acegi安全系统的过渡信息,因为Spring Security最初是作为Acegi的后续项目发展起来的。这部分内容可能帮助那些从Acegi迁移到Spring Security的开发者理解两者之间的...

    Portable_Pathway_Builder_Tool 信号通路选件

    "Portable Pathway Builder Tool 2.0"版本在前一版本的基础上进行了优化升级,可能包括更丰富的图形库、增强的编辑功能、以及更好的兼容性。用户可以预设或自定义各种通路元素的形状、颜色和大小,以适应不同的展示...

    Microarray Analysis of the Secretory Pathway Genes Response to TuMV Infection in Brassica rapa

    利用基因芯片分析TuMV侵染对白菜分泌途径基因的影响,李彦肖,张昌伟,前人研究发现病毒的复制复合体(viral RNP complex)和病毒RNA通过分泌途径移动到胞间连丝。本研究通过拟南芥基因芯片鉴定病原物侵染引�

    IPA-Ingenuity Pathway Analysis

    IPA(Ingenuity Pathway Analysis)是一款在生物信息学领域广泛应用的通路分析工具,它专为研究人员提供了一整套分析方案,以理解基因表达数据、蛋白质组学数据或其他分子交互数据背后的生物学意义。这款软件的强大...

    Pathway_Builder

    软件名字叫做 pathway builder tool 官网是http: www proteinlounge com PathwayBuilder aspx(官网可以7天试用) 软件自带几乎所有分子生物学会用到的元素 如不同的细胞 细胞器 分子 老鼠模型 另外 这个软件自带...

    Notch1 signaling pathway

    标题“Notch1 signaling pathway”(Notch1信号通道)直接指出了本文研究的核心对象——Notch1信号通路。Notch信号通路是一种高度保守的细胞间通讯系统,在多种生物体中发挥着重要作用,特别是在发育过程中调控细胞...

    pathwaytool

    这款软件基于Pathway/Genome Database (PGDB) 数据库,提供了丰富的生物信息分析功能,包括基因功能注释、通路分析、基因集富集分析以及差异表达基因的可视化。 PathwayTool的核心功能: 1. **通路分析**:...

    Unsupervised Learning From Video to Detect Foreground Objects in

    通过这种方式,Student pathway 可以学习到 Teacher pathway 的知识和经验,从而实现对单图像前景对象的检测。 4. 无监督对象发现 无监督对象发现是指在没有标记数据的情况下,检测和识别图像中的对象的方法。这种...

    Protein Networks and Pathway Analysis (Methods in Molecular Biology)

    《蛋白质网络与途径分析》(Protein Networks and Pathway Analysis)是分子生物学方法系列书籍中的一部,由尤里·尼科尔斯基(Yuri Nikolsky)和朱莉·布莱恩特(Julie Bryant)编辑,专注于蛋白质网络和生物途径的...

    工艺流程绘图软件

    在Portable_Pathway_Builder_Tool_2.0这个压缩包文件中,很可能包含的是这款工艺流程绘图软件的便携版本。便携版软件的一大优点是无需安装,可以直接运行,不会在用户的电脑上留下任何痕迹,方便在不同设备间切换...

    Measurement of Mitochondrial Respiration in Isolated Protoplasts

    The AOX pathway is thought to act as a safety valve, preventing overreduction of the ETC and protecting cells from oxidative damage. 3. Mesophyll Protoplasts and Their Isolation Mesophyll ...

    A histone methylation-dependent DNA methylation pathway is uniquely impaired by deficiency in S-adenosylhomocysteine hydrolase

    A histone methylation-dependent DNA methylation pathway is uniquely impaired by deficiency in S-adenosylhomocysteine hydrolase

    dos下的pathway开发包

    Pathway是一款在DOS操作系统环境下使用的开发工具,它在80年代末至90年代初是程序员们进行软件开发的重要选择。标题中的“dos下的pathway开发包”指的是专为DOS系统设计的一套开发环境,它包含了编译器、链接器、...

    pathway系统设计

    ### Pathway系统设计:多路数据源的整合与分析 #### 概述 在生物学领域,Pathway(通路)是指一系列与特定代谢过程相关的连锁反应,它在细胞的生理和代谢过程中扮演着至关重要的角色。通过对Pathway的深入研究,...

    A Pathway Into Number Theory

    R. P. Burn的数论入门,非常好的一本数论指导书,影印版

    PyPI 官网下载 | pathway2cyjs-0.0.3-py3-none-any.whl

    from pathway2cyjs import Pathway2CyJS # 加载生物通路数据 pathway_data = ... # 创建转换器对象 converter = Pathway2CyJS() # 转换数据并获取JSON cyjs_json = converter.convert(pathway_data) # 将JSON...

    Introduction to Visual Computing: Core Concepts in Computer Vision, Graphics

    convolution, spectral analysis and feature detection) and corresponds to the low level retinal image processing that happens in the eye in the human visual system pathway. The next part of the book ...

Global site tag (gtag.js) - Google Analytics