用拦截器实现登录验证功能AuthorizationInterceptor:
package com.interceptor;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.*;
import com.opensymphony.xwork2.*;
import java.util.*;
/**
* @author http://xp9802.iteye.com/
*/
public class AuthorizationInterceptor extends AbstractInterceptor {
private String ignoreActions;
// ignoreActions属性的getter方法
public String getIgnoreActios() {
return ignoreActions;
}
// ignoreActions属性的setter方法
public void setIgnoreActions(String ignoreActions) {
this.ignoreActions = ignoreActions;
}
@Override
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext ctx = invocation.getInvocationContext();
Map session = ctx.getSession();
String user = (String) session.get("username");
boolean ignore = false;
String currentAction = invocation.getProxy().getActionName();
String[] actions = ignoreActions.split(",");
for (String action : actions) {
if (currentAction.matches(action.trim())) {
ignore = true;
break;
}
}
if (user != null || ignore == true) {
return invocation.invoke();
} else {
return Action.LOGIN;
}
}
}
在struts.xml文件里面配置该拦截器:
<interceptors>
<interceptor name="authorization" class="com.interceptor.AuthorizationInterceptor" />
<interceptor-stack name="myStack">
<interceptor-ref name="authorization">
<param name="ignoreActions"> validate_code,register.*,.*login.*,upload,connector</param>
</interceptor-ref> <interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack"/>
分享到:
相关推荐
在Struts2中,拦截器(Interceptor)扮演着至关重要的角色,它们允许开发者在动作执行前后插入自定义的逻辑,从而实现如日志记录、权限检查、数据验证等常见功能。以下是对Struts2拦截器的详细解释: 1. 拦截器的...
在深入探讨Struts2拦截器的使用之前,我们先来了解一下拦截器的基本概念以及它在Struts2框架中的角色和重要性。 ### Struts2拦截器的概念 拦截器(Interceptor)是Struts2框架的核心组件之一,它允许开发者在...
总的来说,结合CXF的拦截器机制和Spring的强大功能,我们可以轻松地实现在发布Web服务时的权限控制。这不仅提升了应用的安全性,也使得我们的代码更加模块化和可维护。在实际项目中,这样的实践是非常重要的,因为它...
Struts拦截器在实际应用中被广泛用于实现如日志记录、权限验证、数据校验、事务管理等通用功能,极大地提高了代码的复用性和可维护性。下面我们将深入探讨Struts拦截器的增删改查应用场景及其实现方式。 首先,我们...
2. 创建具体拦截器,如`LoggingInterceptor`和`AuthorizationInterceptor`,继承`BaseInterceptor`,并在各自的beforeExecute()和afterExecute()方法中实现特定功能,如记录日志和进行权限验证。 3. 在`struts.xml`...
如果用户不具备执行Action的权限,拦截器会阻止请求的进一步处理并重定向到错误页面或登录页面。 此外,还可以结合Spring Security或Apache Shiro等安全框架进行更复杂的权限管理。这些框架提供了角色、权限的管理...
5. **拦截器**:`AuthorizationInterceptor`是一个拦截器,它会在请求被控制器处理之前执行,通常用于权限验证或日志记录。在这个系统中,可能用来检查用户是否登录或者是否有权限访问某些资源。 6. **Maven构建**...
3. 权限管理:Struts可以通过Interceptor拦截器来实现权限控制。例如,我们可以定义一个AuthenticationInterceptor,检查用户是否已登录,如果未登录,则重定向到登录页面。此外,AuthorizationInterceptor可用来...
作者 : 使用SSH框架实现99.99999%的功能 开发工具MyEclipse6.5.1 . 先在src下的jdbc.properties中配置数据库的信息(本项目使用的是Oracle) 再使用com.chen.common包中的CreateTable.java 建表,再往用户表添加一个...
#### 八、登录拦截功能实现 登录拦截器(`AuthorizationInterceptor.java`)用于拦截未登录用户访问受保护资源的请求。实现方式通常是在Spring Boot中注册一个自定义的拦截器,该拦截器会检查请求头中的认证信息,并...
8. **安全机制**:登录系统通常会涉及用户认证和授权,Struts 2提供了一些内置的拦截器,如`AuthenticationInterceptor`和`AuthorizationInterceptor`,可以用来实现简单的身份验证和权限控制。 9. **异常处理**:...