`

Acegi(七): LogoutFilter配置及几个问题

阅读更多

   这些天有点懒散, 想的也得振作一下吧. 从最好容易的部分下手, 这样想到Acegi.前段时间的博客里写了acegi的最简单配置, 以及围绕这些简单配置的一点点源码层面的钻研. 而实际项目中的配置光这些是不够的, 比如说用户信息及权限还有系统的访问权限都是要放到数据库里的, 这样在做用户登录与权限认证时就要hit数据库了, 这方面的配置又怎样呢?

    不过这篇博客中打算写与数据库扩展相关的话题, 而是先从较为简单的几个Filter开刀.

    先看LogoutFilter.

    配置很简单.
    1, 先配置一个id为
logoutFilter的Bean, 如下所示:
         
<bean id="logoutFilter"        class="org.acegisecurity.ui.logout.LogoutFilter">
        <constructor-arg value="/login.jsp" />  
        <constructor-arg>
            <list>
                <bean class="org.acegisecurity.ui.logout.SecurityContextLogoutHandler" />
            </list>
        </constructor-arg>
    </bean>

    2, 把配置好的
logoutFilter加到 filterInvocationDefinitionSource中去, 即改为 "/**=httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor".
    3, 在JSP中适当的位置加上
<a href="/myOwnAcegi/j_acegi_logout">退出</a>

    几点说明, 这个的配置很简单的也多少要说有:
    1,
<constructor-arg value="/login.jsp" />的作用, 用来告诉Acegi当系统退出后跳转到的链接.
    2,
LogoutFilter构造方法中的第二个参数的作用, 告诉Acegi系统退出后, 都有哪些跟退出相关的action要做.
    3,
j_acegi_logout的链接, 这个没什么, 跟登录时的" j_acegi_security_check "类似, 都是Acegi自带的, 大多情况下也没什么必要修改.

    从追着源码看了它的实现,没什么特殊的, 不过有如下几个不太相关的问题:
    1, 有没有必要对这个退出单独配置一个访问时的filterChain, 即另加一个"
/j_acegi_logout= httpSessionContextIntegrationFilter, logoutFilter "?如此配置的出发点是这样的,上面配置2种的访问链接在 logoutFilter之后还有三个filter要通过, 执行时间上有些浪费了, 通过这样配置后, 当用户点"退出"时acegi处理完 logoutFilter后就没什么filter要处理了.
         再者说, 也不至于让每一个请求都通过一次
logoutFilter,虽说 logoutFilter里有这样一个 requiresLogout判断.
         这样的配置里能不能不加
httpSessionContextIntegrationFilter? 为什么要加呢? 不是很清楚.

         后边看到"
sendRedirect(httpRequest, httpResponse, logoutSuccessUrl); "这样的语句, 原来Acegi通过它就可以让请求链接跳转到
    2,
LogoutFilter的构造方法有两个参数,String类型的 logoutSuccessUrl和 LogoutHandler[]类型的 handlers. 第一个参数没啥可说的, 第一个参数, 人家要的类型是一个数组, 而Spring里配置时是通过<list>标签来的, Spring内部是怎么转化的? 这是个大话题, 先不再下钻了.
        

分享到:
评论

相关推荐

    实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架

    Acegi是一个专门为SpringFramework应用提供安全机制的开放源代码项目,全称为Acegi Security System for ...通过这个例子详细介绍如何配置Acegi的各个组件,同时介绍如何扩展Acegi 使其能够从数据库中读取配置信息。

    实战Acegi:使用Acegi作为基于Spring框架的WEB应

    而Acegi Security是Spring社区早期的一个安全模块,它提供了全面的身份验证、授权和会话管理功能,为基于Spring的应用程序提供了强大的安全性支持。本实战教程将深入探讨如何将Acegi Security集成到Spring框架中,...

    acegi logoutFilter 应用

    这是在原来的基础上添加了logoutFilter的应用,并且有相应的博客讲解。这是一个具体的可以跑的通的demo,博客对应的地址如下:http://blog.csdn.net/yuebinghaoyuan/article/details/20690789

    敏捷Acegi、CAS构建安全的Java系统(part2)共四part

    JAVA开发专家:敏捷Acegi、CAS:构建安全的Java系统 pdf

    实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.pdf

    《实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架》这本书提供了一个很好的起点,它详细介绍了如何设置和使用Acegi,以及如何解决实际开发中的安全问题。 总的来说,Acegi为基于Spring的Web应用提供...

    实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.rar

    Acegi是Spring Security的前身,它是一个强大的、可配置的安全框架,用于构建安全的Java Web应用程序。本实战教程将深入探讨如何将Acegi集成到基于Spring的Web应用中,以实现用户认证、授权以及安全控制等功能。 ...

    CAS及客户端Acegi的安装配置指南

    在本文中,我们将深入探讨如何安装和配置CAS服务器以及客户端Acegi安全系统,以便实现单点登录...在实际操作过程中,可能会遇到各种问题,如网络连接问题、配置错误等,因此需要耐心调试,确保每个环节都正确无误。

    acegi

    - "aopacegi"可能是一个包含Acegi与AOP相关配置或实现的文件,可能涉及切面的定义和安全策略的配置。 Acegi Security在过去的开发实践中扮演了重要角色,它的设计理念和实现方式对后来的安全框架产生了深远影响。...

    Acegi例子代码+一个很好的学习Acegi的网址

    1. **Acegi例子代码**:这个例子代码可能包含了一个简单的Spring应用,演示了如何配置和使用Acegi进行安全控制。通过运行此示例,你可以了解Acegi的配置过程以及如何在实际应用中集成。 2. **学习网址**:提供了一...

    Acegi(四):Acegi初体验及初解剖

    这篇博客的标题"Acegi(四):Acegi初体验及初解剖"表明我们将深入探讨Acegi的基础用法和内部机制。尽管Acegi已经被Spring Security所取代,但它的设计理念和核心功能对理解现代Java应用安全依然有价值。 首先,Acegi...

    acegi实例,acegi详细配置和代码实现

    Acegi Security是Spring Security的前身,它是一款强大的Java安全框架,用于处理Web应用程序的安全性问题。在本实例中,我们将探讨Acegi Security的配置、详细设置以及如何通过代码实现其功能。 首先,让我们理解...

    acegi配置文件

    acegi配置文件清单

    Acegi 数据库配置安全策略 源代码及图解

    Acegi 安全框架是Spring生态中的一个早期的安全组件,它提供了一套强大的基于数据库的配置来实现应用程序的安全策略。本资源由王政创作并分享,主要涉及如何将XML配置转换为数据库动态配置,这对于那些需要灵活管理...

    基于java的ACEGI

    在《实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.pdf》中,可能会详细讲解如何配置和使用Acegi。以下是一些关键步骤: 1. **添加依赖**:首先,在项目中引入Acegi的依赖库,通常是通过Maven或...

    acegi的详细配置实现

    综上所述,Acegi Security是一个功能强大且高度可配置的安全管理工具,它支持多种认证机制和授权策略,可以满足不同类型应用程序的需求。通过深入理解其架构和配置细节,开发者可以更好地利用Acegi Security来保护...

    acegi rememberMe和退出

    Acegi Security提供了一个LogoutFilter,该过滤器负责处理注销请求,清理session、Remember Me令牌等,确保用户安全退出。 要实现Acegi Security的"Remember Me"和退出功能,你需要做以下步骤: 1. 配置...

    Acegi 详细配置说明

    Acegi的配置主要涉及以下几个关键组件: 1. **安全上下文(Security Context)**:这是存储当前用户安全信息的地方,包括认证的Principal(用户信息)和权限信息。 2. **认证管理器(Authentication Manager)**:...

    acegi安全策略与CAS整合

    - AceGI:AceGi Security,一个用于Spring Web应用的安全框架。 - CAS:Central Authentication Service,中心认证服务,提供单一登录解决方案。 - SSO:Single Sign-On,单点登录,用户只需登录一次就能访问所有...

    Acegi学习笔记--Acegi详解实战Acegi实例

    Acegi是Spring框架早期的一个安全模块,主要用于身份验证和授权管理。在2009年,Acegi被Spring Security所吸收,成为其前身,因此理解Acegi有助于我们深入理解Spring Security的安全机制。以下是对Acegi的详细介绍和...

    使用Acegi作为基于Spring框架的WEB应用的安全框架

    Acegi Security,现已被Spring ...结合"acegi-sample.war"和"实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.pdf",开发者可以更好地理解和掌握Acegi Security的使用方法,从而提升Web应用的安全性。

Global site tag (gtag.js) - Google Analytics