当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

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

发表于: 2013-07-19   作者:chinrui   来源:转载   浏览次数:
摘要: 自定义拦截器进行登陆验证 拦截器代码: package com.hpu.interceptor; import java.util.Map; import com.hpu.model.Manager; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; imp

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

拦截器代码:

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>

 

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

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
【Struts2】☆★之Struts2自定义拦截器验证登录 在实际项目中我们的方法都是需要验证登录状态的,所
首先我们新建一个类库命名为Module,然后新建一个类命名为UrlRewriteModule 并且实现IHttpHandler接
Devise 登陆验证的代码 https://github.com/plataformatec/devise/blob/v2.0.2/lib/devise/models/d
最近项目中有一个业务是收银员通过输入用户卡号,给用户充值或者消费,但是为了避免误操作(如卡号输
经常要用到验证码-- 如何实现呢?记得前段时间在网络上看到一个方法,结合自己的程序写了一个。 1
作为“框架(framework)”,可扩展性是不可或缺的,因为世上没有放之四海而皆准的东西。虽然,Strut
首先我们来以一个权限拦截器 的例子来说明自定义拦截器,登录之后才可以访问action中的方法,没有登
自定义拦截器 Struts自带的拦截器有35个之多。例如:输入验证是由名为validation拦截器处理的,如果
图示: User 实体类 package entity; public class User { private String username; private Strin
在使用validation进行唯一性验证时,想各个模块写一个统一的方法,相统一参数名称,但是remote方法
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号