zoukankan      html  css  js  c++  java
  • [转]struct2 拦截所有没有登录的用户,强行转到登录界面AuthorizationInterceptor

    package com.sise.action;
     
    import java.util.Map;
     
    import com.opensymphony.xwork2.Action;
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
     
    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();
            Object user = session.get("currentUserId");
            boolean ignore = false;
            if (user != null || ignore == true) {
                return invocation.invoke();
            } else {
                return Action.LOGIN;
            }
        }
    }

      struct.xml配置文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
        <package name="default" extends="struts-default">
            <interceptors>
                <interceptor name="loginInterceptor"
                    class="com.sise.action.AuthorizationInterceptor"></interceptor>
                <interceptor-stack name="loginDefaultStack">
                    <interceptor-ref name="loginInterceptor">
                        <param name="ignoreActions">
                            validate_code,register.*,.*login.*,upload,connector</param>
                    </interceptor-ref>
                    <interceptor-ref name="defaultStack"></interceptor-ref>
                </interceptor-stack>
            </interceptors>
            <default-interceptor-ref name="loginDefaultStack"></default-interceptor-ref>
            <global-results>
                <result name="login" type="redirect">/login.html</result>
            </global-results>
            <action name="index" class="com.sise.action.IndexAction"
                method="index">
                <result name="success">/index.html</result>
            </action>
            <action name="login" class="com.sise.action.LoginAction"
                method="login">
                <result type="redirectAction">index</result>
                <result name="login" >/login.html</result>
                <interceptor-ref name="defaultStack"></interceptor-ref>
            </action>
        </package>
    </struts> 
  • 相关阅读:
    【SQL基础】三种类别语句
    【安装eclipse, 配置java环境教程】 编写第一个java程序
    【c++错误】类的语法错误 error c2533:constructors not allowed a return type(构造函数不允许返回一个类型)
    【经典算法大全】收集51种经典算法 初学者必备
    【费式搜寻法】
    【插补搜寻法】
    【基数排序(桶排序)】
    【字串核对】
    【老鼠走迷宫二】
    【稀疏矩阵】
  • 原文地址:https://www.cnblogs.com/common1140/p/3952955.html
Copyright © 2011-2022 走看看