public class AuthorizationInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation ai) throws Exception {
Map<?, ?> session = ai.getInvocationContext().getSession();
UsrinfVO actor = (UsrinfVO) session.get(Constants.LGNUSR);
if (actor == null) {
actor = SpringUtil.getLgnUsr();
}
Action action = (Action) ai.getAction();
if (action instanceof UsrAction) {
return ai.invoke();
}
HttpServletRequest request = ServletActionContext.getRequest();
// AJAX request session time out handle
String type = request.getHeader("X-Requested-With");
if ( type != null && type.equalsIgnoreCase("XMLHttpRequest")) {
if(!validateLoginStatus(actor)){
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=utf-8");
PrintWriter pw = response.getWriter();
//request.setAttribute("message", "timeout");
Log.info("Ajax 超时");
pw.write("timeout");
return null;
}
}
if (!validateLoginStatus(actor)) {
Log.info("超时退出");
return "goLoginAppPage";
}
return ai.invoke();
}
}
- 浏览: 50694 次
- 性别:
- 来自: 北京
相关推荐
在Struts2中,拦截器(Interceptors)扮演着核心角色,增强了框架的功能和灵活性。这篇文章将深入探讨Struts2拦截器的概念、工作原理以及如何在实际应用中使用它们。 **一、什么是Struts2拦截器** 拦截器是基于AOP...
在这个“Struts2拦截器实现权限控制demo”中,我们将深入探讨如何利用拦截器来实现细粒度的用户权限管理。 首先,我们需要了解Struts2中的拦截器工作原理。拦截器是基于Java的动态代理模式实现的,它们按照配置的...
### Struts2拦截器的使用方法 #### 一、Struts2拦截器概述 Struts2框架中的拦截器(Interceptor)是一种重要的机制,用于在Action执行前后进行一系列处理,比如参数验证、数据预处理等。它能够帮助开发者更加灵活...
拦截器是Struts2框架的核心组成部分,它们在请求处理流程中起到了关键的作用。在本文中,我们将深入探讨Struts2拦截器的工作原理。 ### 一、拦截器概念 拦截器是基于Java的动态代理机制实现的,它允许我们在Action...
在Struts2中,拦截器扮演着至关重要的角色,它们是实现MVC(Model-View-Controller)架构的关键组件之一。拦截器允许开发者在动作执行前后插入自定义逻辑,比如日志记录、权限检查、数据验证等,而无需修改核心业务...
拦截器是Struts2框架的一个重要组成部分,能够帮助开发者实现一些在请求处理前后执行的通用逻辑,如日志记录、权限验证、数据校验等。在本场景中,我们将探讨如何使用Struts2拦截器来实现对不文明字迹或者敏感词汇的...
这篇博客文章“struts2拦截器实现权限控制”深入探讨了如何利用Struts2的拦截机制来执行用户访问权限的验证。 在Struts2中,拦截器是基于AOP(面向切面编程)的概念设计的,它们在Action调用前后执行,可以添加额外...
Struts2中的拦截器是一个实现了`Interceptor`接口或者继承了`AbstractInterceptor`抽象类的Java类。当一个请求到达时,Struts2会按照配置的拦截器栈顺序逐个调用这些拦截器,然后执行Action,最后再按逆序返回。...
Struts2还提供了一些抽象类如`AbstractInterceptor`和`MethodFilterInterceptor`,简化了拦截器的实现过程,例如`MethodFilterInterceptor`允许开发者指定要过滤的Action方法。 4. **定义拦截器示例** 下面是一个...
在Struts2中,拦截器(Interceptor)是实现业务逻辑控制和增强功能的重要机制,而国际化(Internationalization,简称i18n)则能帮助我们构建支持多语言的Web应用。下面将详细解释这两个知识点以及它们如何在Struts2...
Struts2提供了一个抽象拦截器(`AbstractInterceptor`)基类,它是所有拦截器的基础。继承这个类可以方便地创建自定义拦截器,因为该类已经实现了`Interceptor`接口,并提供了一些基本的方法和属性。这些方法包括: ...
实现这样的拦截器,你需要编写一个自定义的Interceptor类,继承自`com.opensymphony.xwork2.interceptor.AbstractInterceptor`或使用Struts2提供的`InterceptorSupport`。在`intercept()`方法中,你可以实现登录检查...
Struts2 拦截器是基于Java的Servlet Filter设计模式的一种实现,它提供了一种在Action执行前后插入额外逻辑的方式。拦截器是Struts2框架的核心组件之一,用于增强应用的功能,比如权限验证、日志记录、数据校验等。 ...
在Struts2中,拦截器工作在Action和结果(Result)之间,形成一个拦截器栈,每个拦截器按照配置的顺序依次执行。 Struts2的拦截器执行流程如下: 1. **初始化拦截器栈**:当Struts2框架启动时,会根据配置文件...
### Struts2拦截器原理与实战案例解析 #### 一、Struts2拦截器概述 Struts2框架作为Java Web开发中的重要工具之一,其核心优势在于强大的MVC架构支持和丰富的扩展性。其中,拦截器(Interceptor)是Struts2框架的...
具体来说,Struts2的拦截器是通过实现`Interceptor`接口或者继承`AbstractInterceptor`抽象类来创建的。核心方法是`intercept()`,该方法接收一个`ActionInvocation`对象作为参数,这个对象封装了当前请求的信息,...
在Struts2中,拦截器扮演着至关重要的角色,它们允许我们在动作执行前后插入自定义逻辑,提升代码的可复用性和模块化。本篇文章将深入探讨如何使用Struts2的拦截器技术来实现页面检测和用户注册功能。 首先,我们...
开发者可以通过实现Struts2的`Interceptor`接口或者继承`AbstractInterceptor`抽象类来创建自定义拦截器。然后在struts.xml配置文件中声明拦截器并指定其在拦截器栈中的位置。 4. 配置拦截器: 在Struts2的配置...
在Struts2中,创建一个拦截器非常简单,只需要实现`Interceptor`接口或者继承`AbstractInterceptor`抽象类。通常,我们会选择继承`AbstractInterceptor`,因为它提供了一些基本的方法和属性。然后在`intercept()`...
2. 注册拦截器:在Struts2的配置文件(如struts.xml)中,将这个拦截器添加到默认栈或者自定义拦截器栈中。 3. 检查登录状态:在`intercept()`方法中,可以通过Session或者其他方式检查用户是否已登录,未登录则返回...