系统的登录和注销都是用shiro实现,其中登录的日志我是通过aop切自定义实现AuthorizingReam类的子类AuthorizingRealm方法实现的,而注销的日志记录就不知道怎么实现了,用过aop切shiro内置类DelegatingSubject的logout方法,可是切不进去,bean是这么写的
,由于这个系统是个几年前的老系统,突然要求加个登录注销日志,试了一天以后感觉有点无从下手了,希望大神们给点意见。只要能实现记录注销日志的功能就行。
登录通过切AuthorizingReam的子类的重写方法doGetAuthenticationInfo实现。不知道思路对不对,注销就完全没有头绪了。我知道aop的对象必须是ioc管理的bean,所以我也在applicationContext.xml里面配置了注销shiro的内部实现类DelegatingSubject的bean,继承于接口Subject,
<bean class="org.apache.shiro.subject.support.DelegatingSubject">
<constructor-arg ref="securityManager"/>
</bean>
自己写个Controller 里面实现 SecurityUtils.getSubject().logout() 然后切面切进来不就得了。
然后重定向回登陆页面
shiro提供了LogoutFilter过滤器,我们可以继承LogoutFilter,重写preHandle方法,实现注销日志记录