SecurityContext保存在HttpSession中,当用户退出系统时必须清除之,否则SecurityContext将一直保存在HttpSession中,需要等到Session过期后才会被清除,这将造成额外的内存消耗。从另外一个方面说,在退出系统时常常需要执行一些相关的操作,如记录用户退出系统的日志、将登录信息保存到Cookie中等。
Acegi为完成以上一系列由退出系统引发的操作,专门提供了一个退出过滤器:org.acegisecurity.ui.logout.LogoutFilter,它允许我们通过配置完成相关的操作:
代码清单 11 applicationContext-acegi-plugin.xml
退出系统后置处理配置
<bean id="filterChainProxy"
class="org.acegisecurity.util.FilterChainProxy">
<property name="filterInvocationDefinitionSource">
<value>
…
/**=httpSessionContextIntegrationFilter,authenticationProcessingFilter,logoutFilter ①
</value>
</property>
</bean>
<bean id="logoutFilter" class="org.acegisecurity.ui.logout.LogoutFilter">②退出系统过滤器
<constructor-arg> ②-1退出系统前需要执行的操作
<list>
<bean class="org.acegisecurity.ui.logout.SecurityContextLogoutHandler" />
</list>
</constructor-arg>
<constructor-arg value="/index.jsp" />②-2退出系统后转向的URL
②-3用于响应退出系统请求的URL
<property name="filterProcessesUrl" value="/j_acegi_logout"/>
</bean>
…
在①处,我们在过滤器链中添加一个logoutFilter,它负责处理用户退出系统的操作。退出系统过滤器需要以下三方面的信息:
1) 哪一个URL是退出系统的HTTP请求,这通过filterProcessesUrl属性指定,②-3所示。LogoutFilter默认的退出系统URL即是“/j_acegi_logout”,这里显式进行配置是为了说明可以根据需要进行调整;
2) 退出系统时需要执行哪些处理器,通过LogoutFilter的构造函数指定,如②-1所示。处理器必须实现org.acegisecurity.ui.logout.LogoutHandler接口,Acegi为该接口提供了两个实现类,分别是SecurityContextLogoutHandler和 TokenBasedRememberMeServices,前者将SecurityContext从HttpSession中删除,而后者将Anthentication中的用户名/密码保存到客户端的Cookie中,以便下次用户访问系统时直接通过Cookie中的用户名/密码进行自动登录。我们将在下一节学习到TokenBasedRememberMeServices的知识。
3) 退出系统后转向哪个URL,通过构造函数参数指定,如②-2所示。
配置好退出系统过滤器后,在需要在系统页面中提供一个退出系统的操作链接:
<A href="<c:url value="/j_acegi_logout"/>">退出系统</A>
注意粗体所示代码代表退出系统所对应的URL,它必须和LogoutFilter的filterProcessesUrl属性一致。这样,当用户点击页面中的“退出系统”链接后,LogoutFilter拦截这个URL请求,并调用SecurityContextLogoutHandler将SecurityContext从HttpSession中清除掉,最后转向/index.jsp页面。
分享到:
相关推荐
本文件为机械行业适用,本代码为机械制造行业软件生成代码的后置处理。
瑞士GF公司的五轴加工中心,型号HEM_500U,这个五轴加工中心的数控系统为海德汉530系统。这个后置处理程序为Hypermill五轴后置处理程序,正版软件带来的。
论述了变截面叶片的结构和加工工艺,针对A回转台/B摆动轴式五轴联动数控机床的叶片加工,分析了后置处理中重要的机床运动轨迹坐标变换;就进、出汽边曲线段加工时,机床旋转自由度大幅摆动导致加工表面质量下降的问题,...
UG_德马吉的后置处理程序,包括立加和卧加的。
在机床上实际应用过,带换刀功能,并且加工时间等一应俱全。
jmeter用beanshell后置处理程序生成全局变量 jmx脚本(全)
ArtCAM 后置处理编写说明 ArtCAM是世界顶级的艺术浮雕设计加工软件解决方案,是具有三十多年历史的英国Delcam公司的产品。
五轴数控加工编程后置处理技术研究 五轴数控加工编程后置处理技术研究
文档文件
五轴联动数控加工后置处理研究. 五轴联动数控加工后置处理研究.
精雕3.5维宏操作系统G代码后置修正.epst
基于MasterCAM9_0后置处理程序的二次开发.pdf
讲解了MASTERCAM后置处理系统设置的方法
瑞士GF公司的五轴加工中心,型号HEM_700U,这个五轴加工中心的数控系统为海德汉530系统。这个后置处理程序为Powermill五轴后置处理程序,pmoptz格式,与500U后置的区别是,这个后置处理支持循环19。
常用数控车CAD_CAM软件的后置处理设置.pdf
Mastercam后置处理文件及设定方法详解
用于配置维宏系统机床的G代码的后置文件,可用有效去除某些G代码文件维宏系统报错的问题,可用于精雕等可配置后置文件的雕刻软件
深入研究了AC 轴工作台旋转型五轴机床后置处理中的X、Y、Z 轴冗余运动优化问题。对于五轴机 床,工件在工作台中不同的摆放位置会造成后置处理中X、Y、Z 轴的路径长短不同,导致了在相同的 进给率下加工时间差别很大。...
Mastercam 9 后置处理修改说明
基于MasterCAM9_0后置处理程序的修改