/**
* session超时跳转登陆页面
* @author zhangdong
* 2017年10月24日
*/
@Aspect
@Component
public class SessionTimeoutAspect { private static Logger logger = Logger.getLogger(SessionTimeoutAspect.class);
public SessionTimeoutAspect() {
} @org.aspectj.lang.annotation.Pointcut("execution(* com.jsz.peini.controller..*.*(..))")
public void controllerPointcut(){
} @Pointcut("execution(* com.jsz.peini.controller.mgr.UserLoginController..*(..))")
public void rootPointcut(){//登录登出功能不需要Session验证
} @org.aspectj.lang.annotation.Pointcut("controllerPointcut()&&(!rootPointcut())")
// @org.aspectj.lang.annotation.Pointcut("controllerPointcut()")
public void sessionTimeOutPointcut(){
} @Around("sessionTimeOutPointcut()")
public Object sessionTimeOutAdvice(ProceedingJoinPoint pjp) throws IOException {
Object result = null;
String targetName = pjp.getTarget().getClass().getSimpleName();
String methodName = pjp.getSignature().getName();
logger.info("----------------执行方法-----------------");
logger.info("类名:"+targetName+" 方法名:"+methodName);
HttpServletResponse response = null;
for (Object param : pjp.getArgs()) {
if (param instanceof HttpServletResponse) {
response = (HttpServletResponse) param;
}
}
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
HttpSession session = request.getSession();
if(session.getAttribute("MgrUserId")!=null){
try {
result = pjp.proceed();
} catch (Throwable e) {
e.printStackTrace();
}
return result;
} else{
logger.debug("Session已超时,正在跳转回登录页面");
PrintWriter writer = response.getWriter();
writer.write("<script>window.parent.location.href='/superOpAdmin.jsp'</script>");
writer.flush();
writer.close();
}
return result;
}

  

最新文章

  1. Linux Tomcat 6.0安装配置实践总结
  2. AMBA
  3. 关于GSMMAP分支cell_log扫描不正常问题的解决办法
  4. AOJ - 2224 Save your cat(最小生成树)
  5. 判断app是否在后台
  6. c#进程间通讯方案之IPC通道
  7. [iOS] Create TableView &amp; customize UITableViewCell
  8. 第二、UIScrollView的使用大全
  9. mysql隔离级别的设置和检索
  10. YUI的模块化开发
  11. opengl 正方体+模拟视角旋转
  12. ListView与DataTable传递数据
  13. 7 Ways to earn money on programming(转)
  14. 理解volatile
  15. DotNetBar的窗口样式丢失
  16. Python编码问题小结
  17. Mac下更改JDK环境变量配置
  18. [牛客小白月赛4 H] 相邻的糖果
  19. [MS] 微软官网下载安装SQLSERVER2019的rpm
  20. .NET Memory Allocation Profiling with Visual Studio 2012

热门文章

  1. VMware虚拟机共享文件夹
  2. Long型转换成IP段String、StringIP段转换成Long型
  3. systemd bug: bz1437114 core:execute: fix fork() fail handling in exec_spawn()
  4. create raid5
  5. laravel 模板
  6. [luogu2151 SDOI2009] HH去散步 (矩阵快速幂)
  7. 安装idea
  8. 小白神器 - 两篇博客读懂JavaScript (一基础篇)
  9. 【codeforces 734F】Anton and School
  10. mysql5.7官网直译SQL语句优化--分组优化