• struts2 权限拦截器 拦截没有登陆的请求


    假设有这样的登陆:

    ActionContext.getContext().getSession().put("UserMsg", userMsg);

    则可以这样判断是否登陆:

    import com.ahgw.common.sessionBean.UserMsg;
    import com.opensymphony.xwork2.Action;
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
    
    /**
     * 负责后台权限访问(必须登陆才可以进入后台)
     * User: HYY
     * Date: 13-5-27
     * Time: 下午8:27
     * To change this template use File | Settings | File Templates.
     */
    public class AdminInterceptor extends AbstractInterceptor {
    
        @Override
        public String intercept(ActionInvocation actionInvocation) throws Exception {
            ActionContext context = actionInvocation.getInvocationContext();
            UserMsg userMsg = (UserMsg) context.getSession().get("UserMsg");
            if (userMsg == null) {
                return Action.LOGIN;
            }
            return actionInvocation.invoke();
        }
    }

    其相应的strut配置如下:

    <struts>
        <package name="admin-newsManage" extends="struts-default,json-default" namespace="/newsManage">
            <interceptors>
                <interceptor name="privilege" class="com.ahgw.admin.interceptor.AdminInterceptor"/>
                <interceptor-stack name="privilegeStack">
                    <interceptor-ref name="defaultStack"/>
                    <interceptor-ref name="privilege"/>
                </interceptor-stack>
            </interceptors>
    
            <default-interceptor-ref name="privilegeStack"/>
    
            <global-results>
                <result name="login" type="redirect">/admin.do</result>
            </global-results>
    
        </package>
    </struts>

    这样,该package下的所有action中的execute方法进行之前,都会经过interceptor拦截器的判断,即进行权限判断,如果已经登陆,则会转入action中,否则返回登陆视图。

    其中包含struts2拦截器堆栈的知识,这里不进行展开了。

  • 相关阅读:
    Membership provider Role provider 机制详解
    android Toast大全(五种情形)建立属于你自己的Toast
    android:scaleType属性
    Android接收短信同时获取短信内容
    JAVA三大框架的各自作用
    Android短信监听器
    ImageView / ImageButton 图片太大或者太小解决方法
    Android LayoutInflater详解
    Android开发之Intent.Action
    Android实现短信监听并且转发到指定的手机号,转发后不留痕
  • 原文地址:https://www.cnblogs.com/wuyou/p/3313207.html
Copyright © 2020-2023  润新知