2011-11-16 57 views
1

我使用Spring AOP,使系统日志, 我的AOP的切入点是这样的:使用连接点来跟踪用户注销

<aop:pointcut expression="execution(* a.b.*.service.impl.*.*(..)) or (execution  
(* a.core.service.impl.*.*(..)))" id="allMethod"/> 

问题是,它只是在跟踪功能service.impl,当然,如果我改变切入点,它可以跟踪任何服务,或者动作或者道,但是用户的注销,这个项目使用Spring Security,比如“./j_logout”, 不在任何动作,服务,dao,所以我可以't切入它, 有没有办法切割Spring安全,所以我可以告诉哪个用户注销? 没有任何其他解决方案Spring Security也没有问题。 PS:英语不是我的第一语言,我是否让自己清楚?

回答

3

您可以扩展SimpleUrlLogoutSuccessHandler并覆盖onLogoutSuccess(),然后配置您的过滤器

<security:logout success-handler-ref="myCustomLogoutSuccessHandler"/> 

不要忘了重定向到手动登录页面。

查看任何帮助文档。

+0

我不是很明白,你能更具体吗?非常感谢。 – user1021531

+0

只是扩展SimpleUrlLogoutSuccessHandler函数onLogoutSuccess()负责登录页面重定向。所以如果你重写这个函数,你可以在里面做任何你想要的。 –