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中,并且设置默认的拦截器就可以了

  • 相关阅读:
    MySql不允许对同一张表同时进行查询和更新
    MysSql 显示不了中文、乱码问题
    SpringBoot参数访问
    那些年我看过的好文
    关于远程调试
    算法题
    Spring Boot 注解学习
    linux 设置ssh免密登录
    ORA各种错误
    listener.ora tnsnames.ora
  • 原文地址:https://www.cnblogs.com/blairsProgrammer/p/3560357.html
Copyright © 2011-2022 走看看