session 超时跳转登陆页面
2024-08-30 17:07:20
/**
* 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;
}
最新文章
- Linux Tomcat 6.0安装配置实践总结
- AMBA
- 关于GSMMAP分支cell_log扫描不正常问题的解决办法
- AOJ - 2224 Save your cat(最小生成树)
- 判断app是否在后台
- c#进程间通讯方案之IPC通道
- [iOS] Create TableView &; customize UITableViewCell
- 第二、UIScrollView的使用大全
- mysql隔离级别的设置和检索
- YUI的模块化开发
- opengl 正方体+模拟视角旋转
- ListView与DataTable传递数据
- 7 Ways to earn money on programming(转)
- 理解volatile
- DotNetBar的窗口样式丢失
- Python编码问题小结
- Mac下更改JDK环境变量配置
- [牛客小白月赛4 H] 相邻的糖果
- [MS] 微软官网下载安装SQLSERVER2019的rpm
- .NET Memory Allocation Profiling with Visual Studio 2012
热门文章
- VMware虚拟机共享文件夹
- Long型转换成IP段String、StringIP段转换成Long型
- systemd bug: bz1437114 core:execute: fix fork() fail handling in exec_spawn()
- create raid5
- laravel 模板
- [luogu2151 SDOI2009] HH去散步 (矩阵快速幂)
- 安装idea
- 小白神器 - 两篇博客读懂JavaScript (一基础篇)
- 【codeforces 734F】Anton and School
- mysql5.7官网直译SQL语句优化--分组优化