`
chinrui
  • 浏览: 94532 次
  • 性别: 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>

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics