需求:在不影响原来项目的基础上开发一个日志记录插件记录用户操作日志
场景:原项目中使用shiro对用户进行认证和管理,在不影响原来项目的基础上开发一个日志记录插件使用aop记录用户操作日志时,原来项目没有注销的接口(即没有退出的controller)而是通过shiro默认的过滤器实现的退出。
遇到的问题:如何记录用户退出日志
方法:重写shiro的登出过滤器中LogoutFilter中preHandle方法
具体实现:
package com.gisquest.platform.filter;
import java.util.Date;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.apache.shiro.session.SessionException;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.web.filter.authc.LogoutFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import com.gisquest.platform.aspect.ModulesDesc;
import com.gisque