struts2拦截器验证登陆状态

来源:互联网 发布:淘宝小额支付次数 编辑:程序博客网 时间:2024/04/30 06:10
<interceptors>                <!--定义一个名为authority的拦截器-->                <interceptor  class="com.***.rights.RightInterceptor" name="rightInterceptor"/>                    <!--定义一个包含权限检查的拦截器栈-->                    <interceptor-stack name="mydefault">                    <!--配置内建默认拦截器-->                    <interceptor-ref name="defaultStack"/>                    <!--配置自定义的拦截器-->                    <interceptor-ref name="rightInterceptor"/>                </interceptor-stack>      </interceptors>            <default-interceptor-ref name="mydefault" />            <!--定义全局Result-->            <global-results>               <result name="login">Login.jsp</result>                <result name="error">/error.jsp </result>           </global-results>  
 

 

import java.util.HashMap;  import java.util.Map;  import com.opensymphony.xwork2.Action;  import com.opensymphony.xwork2.ActionInvocation;  import com.opensymphony.xwork2.interceptor.AbstractInterceptor;  import com.opensymphony.xwork2.ActionContext;  public class RightInterceptor extends AbstractInterceptor {        @Override      public String intercept(ActionInvocation invocation) throws Exception {          //System.out.println("拦截器开始验证");          try          {              ActionContext actionContext = ActionContext.getContext();              Map<String,Object> session = actionContext.getSession();              String user=session.get("usercode").toString();                 //当前用户session无效且访问的action不是登录action时,执行拦截,跳转              if((user==null || user.equals("")) && !invocation.getAction().getClass().getName().equals("登录action"))               {                  return Action.LOGIN;              }          }          catch(Exception e)          {              e.printStackTrace();              return Action.LOGIN;          }          //System.out.println("拦截器通过验证");          return invocation.invoke();//执行访问的action      }    }  
原创粉丝点击