zoukankan      html  css  js  c++  java
  • spring mvc 拦截器

    拦截器作用:可以用于用户操作的安全检查,如:登录、权限等

    package com.tool;
    
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import org.springframework.web.servlet.HandlerInterceptor;
    import org.springframework.web.servlet.ModelAndView;
    
    public class SecurityInterceptor implements HandlerInterceptor {
        private List<String> excludedUrls;
    
        public void setExcludedUrls(List<String> excludedUrls) {
            this.excludedUrls = excludedUrls;
        }
    
        @Override
        public void afterCompletion(HttpServletRequest arg0,
                HttpServletResponse arg1, Object arg2, Exception arg3)
                throws Exception {
    
        }
    
        @Override
        public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
                Object arg2, ModelAndView arg3) throws Exception {
    
        }
    
        @Override
        public boolean preHandle(HttpServletRequest request,
                HttpServletResponse arg1, Object arg2) throws Exception {
            String requestUri = request.getRequestURI();
            if (excludedUrls == null || excludedUrls.size() == 0)
                return true;        
            for (String url : excludedUrls) {
                if (requestUri.endsWith(url)) {
                    return true;
                }
            }
            //这里可以判断用记是否登录、用户权限
            HttpSession session = request.getSession();        
            if (session.getAttribute("user") == null) {
                throw new Exception("我是来自拦截器的方法");
            } else {
                return true;
            }
        }
    }

    mvc配置

        <!--定义拦截器,验证登录,验证权限都可以在这里玩耍了-->
        <mvc:interceptors>
            <mvc:interceptor>
                <mvc:mapping path="/**" />
                <bean class="com.tool.SecurityInterceptor">
                    <!--定义不需要拦截的url集合-->
                    <property name="excludedUrls">
                        <list>
                            <!--                        <value>/HelloWorld/myhello.do</value>-->
                        </list>
                    </property>
                </bean>
            </mvc:interceptor>
        </mvc:interceptors>

    有追求,才有动力!

    向每一个软件工程师致敬!

    by wujf

    mail:921252375@qq.com

  • 相关阅读:
    架设证书服务器 及 让IIS启用HTTPS服务
    实验二. 使用LoadRunner进行压力测试
    loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写
    康威定律,可以学习一下
    各国iPhone5系列最新裸机价格
    .yml是什么文件
    win32多线程程序设计笔记(第五章)
    kvm libvirt: hostdev passthrough support 解决加密狗冲突问题
    九度OnlineJudge之1023:EXCEL排序
    [置顶] Android开发之XML文件的解析
  • 原文地址:https://www.cnblogs.com/wujf/p/5264863.html
Copyright © 2011-2022 走看看