zoukankan      html  css  js  c++  java
  • Struts2非常简单实用的身份验证功能

    在做网站的时候经常碰到的问题就是身份验证的功能,最蠢的方法就是在每个动作前进行身份验证的动作。。。struts2自带非常方便的“动作执行前的动作设置“功能(这样讲貌似比较容易懂?)。。。简单来说就是在执行struts.xml的某个package下配置的action动作之前,都会先执行我们为这个package预设的动作。看看代码就非常简洁易懂了~

    首先是Struts.xml

         <package name="admin" extends="struts-default">
             <interceptors>
          <!-- 定义了一个名为authority的拦截器,注意拦截器的class -->
                 <interceptor name="authenticationInterceptor" class="interceptor.AdminAuthInterceptor" />
                  <interceptor-stack name="defualtSecurityStackWithAuthentication">
                    <interceptor-ref name="defaultStack" />
                    <interceptor-ref name="authenticationInterceptor" />
                  </interceptor-stack>
            </interceptors>
            <default-interceptor-ref name="defualtSecurityStackWithAuthentication" />
            <!-- 全局Result,让验证不通过的都跳到该result -->
            <global-results>
                  <result name="tologin">/WEB-INF/jsp/login.jsp</result>
            </global-results>

    然后就是写拦截器啦~

    根据上述拦截器的class路径,我们可以新建这样的一个包和类

    然后这个类的内容如下:

    package interceptor;
    
    import com.dao.Commonaction;
    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
    
    public class AdminAuthInterceptor extends AbstractInterceptor {
        private static final long serialVersionUID = -5114658085937727056L;
    
        @Override
        public String intercept(ActionInvocation invocation) throws Exception {
                    //执行验证动作
            if (验证成功) {
                return invocation.invoke();
            }
            return "tologin";
        }
    }

    是不是非常简洁易懂又方便使用咧~这样我们只需为不同的身份可以执行的动作分别丢在struts下不同的package中,并且设置默认的拦截器就可以了

  • 相关阅读:
    some ideas
    zz 牛人啊
    zz 史上最全--各银行借记卡的年费、小额管理费、转账费等!
    哪裡可以買郵票
    : 求靠谱灭蟑螂的方法
    zz 【见闻八卦】《金融时报》年度商业书单:互联网题材占一半
    IOS开发基础知识--碎片6
    IOS开发基础知识--碎片5
    IOS开发基础知识--碎片4
    IOS中关于KVC与KVO知识点
  • 原文地址:https://www.cnblogs.com/blairsProgrammer/p/3560357.html
Copyright © 2011-2022 走看看