`
xp9802
  • 浏览: 1203686 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用拦截器实现登录验证功能AuthorizationInterceptor

阅读更多
用拦截器实现登录验证功能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"/>
4
4
分享到:
评论
2 楼 xp9802 2011-10-31  
tenstars 写道
正好需要这个,谢谢了!

登录验证功能其实还可以用Fiter来实现的,哈
1 楼 tenstars 2011-10-31  
正好需要这个,谢谢了!

相关推荐

    struts2拦截器.rar

    在Struts2中,拦截器(Interceptor)扮演着至关重要的角色,它们允许开发者在动作执行前后插入自定义的逻辑,从而实现如日志记录、权限检查、数据验证等常见功能。以下是对Struts2拦截器的详细解释: 1. 拦截器的...

    struts2拦截器的使用

    在深入探讨Struts2拦截器的使用之前,我们先来了解一下拦截器的基本概念以及它在Struts2框架中的角色和重要性。 ### Struts2拦截器的概念 拦截器(Interceptor)是Struts2框架的核心组件之一,它允许开发者在...

    13.为CXF与Spring整合发布WebService添加拦截器进行权限控制

    总的来说,结合CXF的拦截器机制和Spring的强大功能,我们可以轻松地实现在发布Web服务时的权限控制。这不仅提升了应用的安全性,也使得我们的代码更加模块化和可维护。在实际项目中,这样的实践是非常重要的,因为它...

    struts拦截器增删该查

    Struts拦截器在实际应用中被广泛用于实现如日志记录、权限验证、数据校验、事务管理等通用功能,极大地提高了代码的复用性和可维护性。下面我们将深入探讨Struts拦截器的增删改查应用场景及其实现方式。 首先,我们...

    模拟Struts责任链工作流及简单AOP实现

    2. 创建具体拦截器,如`LoggingInterceptor`和`AuthorizationInterceptor`,继承`BaseInterceptor`,并在各自的beforeExecute()和afterExecute()方法中实现特定功能,如记录日志和进行权限验证。 3. 在`struts.xml`...

    权限管理Struts

    如果用户不具备执行Action的权限,拦截器会阻止请求的进一步处理并重定向到错误页面或登录页面。 此外,还可以结合Spring Security或Apache Shiro等安全框架进行更复杂的权限管理。这些框架提供了角色、权限的管理...

    最新设计ssm汽车在线销售系统--适合计算机毕设、大作业实训项目.rar

    5. **拦截器**:`AuthorizationInterceptor`是一个拦截器,它会在请求被控制器处理之前执行,通常用于权限验证或日志记录。在这个系统中,可能用来检查用户是否登录或者是否有权限访问某些资源。 6. **Maven构建**...

    用户管理模块

    3. 权限管理:Struts可以通过Interceptor拦截器来实现权限控制。例如,我们可以定义一个AuthenticationInterceptor,检查用户是否已登录,如果未登录,则重定向到登录页面。此外,AuthorizationInterceptor可用来...

    北大青鸟学士后第三单元OA办公自动化管理系统

    作者 : 使用SSH框架实现99.99999%的功能 开发工具MyEclipse6.5.1 . 先在src下的jdbc.properties中配置数据库的信息(本项目使用的是Oracle) 再使用com.chen.common包中的CreateTable.java 建表,再往用户表添加一个...

    springboot项目框架

    #### 八、登录拦截功能实现 登录拦截器(`AuthorizationInterceptor.java`)用于拦截未登录用户访问受保护资源的请求。实现方式通常是在Spring Boot中注册一个自定义的拦截器,该拦截器会检查请求头中的认证信息,并...

    newsturts20

    8. **安全机制**:登录系统通常会涉及用户认证和授权,Struts 2提供了一些内置的拦截器,如`AuthenticationInterceptor`和`AuthorizationInterceptor`,可以用来实现简单的身份验证和权限控制。 9. **异常处理**:...

Global site tag (gtag.js) - Google Analytics