`
chinrui
  • 浏览: 97695 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

自定义拦截器进行登陆验证

 
阅读更多

自定义拦截器进行登陆验证

拦截器代码:

package com.hpu.interceptor;

import java.util.Map;

import com.hpu.model.Manager;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class LoginInterceptor extends AbstractInterceptor {

	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		
		ActionContext acx = invocation.getInvocationContext();
		
		Map<String , Object> session = acx.getSession();
		// 获取Session里面的管理员
		Manager manager = (Manager) session.get("manager"); 
		
		if(manager == null) {
			// 未登陆返回登陆界面
			return Action.LOGIN;
		} else {
			// 登陆后,继续执行
			return invocation.invoke();
		}
	}
}

 配置拦截器:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.devMode" value="true" />
    <constant name="struts.objectFactory" value="spring" />
    <constant name="struts.i18n.encoding" value="gbk"/>
    
    <!--不受权限控制的Action请求配置-->
    <package name="non-authority" namespace="/" extends="struts-default" >
    	
    	<default-action-ref name="login" />
    
    	<!-- 登陆界面的Action -->
        <action name="login" class="com.hpu.action.LoginAction" method="login">
        	<result>/WEB-INF/manager/login.jsp</result>
        </action>
        
    </package>

	<!--受权限控制的Action请求配置-->
    <package name="manager" namespace="/manager" extends="struts-default">
    
    	<interceptors>
    	
    		<!-- 定义一个登陆验证的拦截器 -->
    		<interceptor name="authority" class="com.hpu.interceptor.LoginInterceptor" />
    		
    		<!-- 定义一个带有登陆验证的拦截器栈 -->
    		<interceptor-stack name="myStack">
    			<!-- 配置默认拦截器 -->
    			<interceptor-ref name="defaultStack" />
    			<!-- 增加登陆验证拦截器 -->
    			<interceptor-ref name="authority" />
    		</interceptor-stack>
    	</interceptors>
    	
    	<default-interceptor-ref name="myStack" />
    	
    	<global-results>
    		<result name="login">/WEB-INF/manager/login.jsp</result>
    	</global-results>

        <action name="userAdd" class="com.hpu.action.UserAction" method="add">
        	<result type="redirectAction">
				<param name="actionName">user_query</param>
				<param name="room.id">${ user.room.id }</param>
				<param name="pageNumber">1</param>
			</result>
        	<result type="chain" name="input">user_intake</result>
        </action>
    </package>

</struts>

 

分享到:
评论

相关推荐

    WebService之自定义拦截器(server+client)

    在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而WebService之自定义拦截器的实现,无论是对于服务器端还是客户端,都是为了增强服务的功能性和安全性。本文将深入探讨自定义拦截器的概念、作用以及...

    10.为CXF服务器端添加自定义拦截器进行权限检查

    本文将深入探讨如何为CXF服务器端添加自定义拦截器以执行这样的权限验证。 首先,理解CXF(CXF: Apache CXF - A Next Generation JAXWS and JAX-RS API Implementation)是一个开源的Java框架,它用于创建和部署...

    自定义拦截器

    自定义拦截器允许开发者扩展框架的功能,实现如日志记录、权限验证、性能监控等通用任务,而不必在每个动作类(Action)中重复编写相同代码。本文将深入探讨自定义拦截器的基本应用及设置方法。 首先,理解拦截器的...

    CXF3.0+Spring3.2 自定义拦截器

    5. **自定义逻辑**:在自定义拦截器的`handleMessage`或`handleFault`方法中,你可以添加任何你需要的业务逻辑,例如验证请求头、修改消息内容或记录操作日志。 6. **调试和测试拦截器**:为了确保拦截器按预期工作...

    自定义拦截器的实现以及拦截器的详细配置

    本篇文章将深入探讨如何实现自定义拦截器及其在Struts2中的详细配置。 首先,我们来了解自定义拦截器的基本步骤: 1. **创建拦截器类**:自定义拦截器需要继承Struts2提供的`Interceptor`接口或实现`intercept()`...

    struts2自定义拦截器配置心得

    Struts2自定义拦截器的配置是Struts2框架中一个非常重要的功能,它允许开发者在Action执行前后插入自定义的逻辑,以实现如权限验证、日志记录、性能监控等多种需求。以下是对标题和描述中涉及的知识点的详细说明: ...

    使用struts2拦截器对登陆权限验证

    除了Struts2拦截器,我们还可以使用Servlet Filter进行权限验证。Filter是在HTTP请求进入Servlet之前运行的组件,它可以用于处理各种请求和响应过滤,包括登录验证。通常,我们在`web.xml`中配置Filter: ```xml ...

    Struts2_自定义拦截器_用户权限验证

    本项目“Struts2_自定义拦截器_用户权限验证”将深入探讨如何在Eclipse开发环境中,利用Struts2框架自定义拦截器进行用户权限的验证,并处理各个Action之间的跳转。 首先,我们来看自定义拦截器的创建。在Struts2中...

    JSP 开发之Struts2内建自定义拦截器.docx

    本文将深入探讨Struts2的内建自定义拦截器及其配置。 首先,让我们理解什么是拦截器。拦截器是基于AOP(面向切面编程)思想的,它们在Action调用前后执行,形成一个拦截器链。每个拦截器都可以执行特定的任务,并且...

    SpringBoot中自定义拦截器示例代码

    在Spring Boot应用中,自定义拦截器是一种常见的需求,它允许我们对HTTP请求进行预处理和后处理,例如实现权限验证、日志记录、性能监控等功能。本篇将详细讲解如何在Spring Boot中创建并使用自定义拦截器,并提供...

    SpringMvc自定义拦截器(注解)代码实例

    首先,自定义拦截器需要实现Spring MVC提供的`HandlerInterceptor`接口。这个接口定义了三个关键方法: 1. `preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)`: 这是在请求被...

    Struts2自定义拦截器

    在深入探讨自定义拦截器之前,我们先理解一下Struts2拦截器的基本概念。 拦截器(Interceptor)是基于Java的动态代理机制实现的,它可以拦截用户的请求,对请求进行预处理,并且在Action执行后进行后处理。通过在...

    spring集成cxf客户端和服务器端demo(含自定义拦截器)

    在本项目中,"spring集成cxf客户端和服务器端demo(含自定义拦截器)"是一个实战案例,展示了如何在Spring框架下与Apache CXF服务进行整合,实现客户端和服务端的交互,并利用拦截器来增强功能。以下是这个项目涉及的...

    SpringBoot 自定义拦截器 的 源代码

    我们对拦截器并不陌生,无论是 Struts 2 还是 Spring MVC 中都提供了拦截器功能,它可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能上。Spring Boot 同样提供了...

    struts2的一个自定义拦截器小例子

    本示例将聚焦于如何在Struts2中实现一个自定义拦截器。 首先,我们需要了解拦截器在Struts2中的作用。拦截器是AOP(面向切面编程)的一个核心概念,它允许开发者在动作执行前后插入额外的逻辑,如日志记录、权限...

    基于ssh拦截器框架Struts2拦截器的登录验证实现

    SSH2 框架中的 Struts2 拦截器功能允许开发者在特定操作执行前或执行后进行自定义处理,例如登录验证、权限检查等。在本文中,我们将探讨如何使用 Struts2 的拦截器来实现登录验证功能。 首先,我们需要了解 Struts...

    实现java自定义注解拦截器.docx

    这通过创建自定义拦截器和自定义注解来实现。 #### 项目结构 - `TokenInterceptor.java`: 自定义拦截器类,用于执行拦截逻辑。 - `InterceptorConfig.java`: 配置类,用于将自定义拦截器注册到Spring容器中。 - `...

    struts2自定义拦截器

    当我们在配置中引用`defaultStack`并添加自定义拦截器时,自定义拦截器会插入到这个链中,按照栈的顺序执行。 5. **动态拦截器配置** Struts2还支持动态配置拦截器,可以在Action类中使用注解`@Intercepts`声明...

    SSM笔记-SpringMVC的自定义拦截器

    自定义拦截器允许开发者根据业务需求进行更精细的控制,例如权限验证、日志记录、性能统计等。下面我们将深入探讨SpringMVC自定义拦截器的实现过程和应用场景。 首先,自定义拦截器需要实现`HandlerInterceptor`...

Global site tag (gtag.js) - Google Analytics