相关文章

更多>

最新资讯

更多>
  • win10系统关闭时间轴功能的两种操作方法

        关闭时间轴功能的两种操作方法:一、组策略方式 本方法适用于有组策略编辑器的Win10专业版/企业版/教育版。通过组策略编辑器,定位至“计算机配置 - 管理模板 - 系统 - OS策略”。然后在右侧窗口中找到“启用活动源(ActivityFeed)”配置项将配置项修改为“已禁用”应用确定就可以解决了。

  • 在Word中编辑公式,不用从外部打开MathType软件的方法

        MathType是一个很强大的编辑公式的工具。这里给大家介绍一种在Word中编辑公式,不用从外部打开MathType软件的方法。

  • 云计算技术的现况

        在科研领域可以通过云计算进行地震监测、海洋信息监控、天文信息计算处理;在网络安全防护上可以通过云计算进行病毒库存储、垃圾邮件屏蔽。

  • MySQL数据库的几点改善

        避免SELECT * 从数据库里读出越多的数据,那么查询就会变得越慢。只要一行数据时使用LIMIT 1 MySQL数据库引擎会在查找到一条数据后停止搜索,而不是继续往后查询下一条符合条件的数据记录。

  • 开发人员对无服务器计算仍在摸索

        所谓的无服务器计算并不是完全没有服务器的存在,但它使开发人员能够设置事件触发器,并将基础架构方面的需求交给了云提供商。供应商提供了正确的计算规模,存储和内存。

首页> 知识分享> JAVA框架> 【ijava学习网推荐】spring boot 拦截器之详细介绍(一)

【ijava学习网推荐】spring boot 拦截器之详细介绍(一)

时间: 2018-07-12 14:20:45 标签Spring Boot , Interceptor

 

在web开发的过程中,为了实现登录权限验证,我们往往需要添加一个拦截器在用户的的请求到达controller层的时候实现登录验证,那么SpringBoot如何添加拦截器呢?


步骤如下:

  1. 继承WebMvcConfigureAdapter类,覆盖其addInterceptors接口,注册我们自定义的拦截器:

/** 
 * 
 * 注册拦截器 
 */  
@Configuration
public class WebAppConfig extends WebMvcConfigurerAdapter {  
  
    @Override  
    public void addInterceptors(InterceptorRegistry registry) {  
        //注册自定义拦截器,添加拦截路径和排除拦截路径  
        registry.addInterceptor(new           InterceptorConfig()).addPathPatterns("api/path/**").excludePathPatterns("api/path/login");  
    }  
}


   2.实现HandlerInterceptor接口,重写接口中的三个方法:

public class InterceptorConfig  implements HandlerInterceptor{  
  
    private static final Logger log = LoggerFactory.getLogger(InterceptorConfig.class);  
  
    /** 
     * 进入controller层之前拦截请求 
     */  
    @Override  
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {  
  
        log.info("---------------------开始进入请求地址拦截----------------------------");  
        HttpSession session = httpServletRequest.getSession();  
        if(!StringUtils.isEmpty(session.getAttribute("userName"))){  
            return true;  
        }  
        else{  
            PrintWriter printWriter = httpServletResponse.getWriter();  
            printWriter.write("{code:0,message:\"session is invalid,please login again!\"}");  
            return false;  
        }  
  
    }  
  
    @Override  
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {  
        log.info("--------------处理请求完成后视图渲染之前的处理操作---------------");  
    }  
  
    @Override  
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {  
        log.info("---------------视图渲染之后的操作-------------------------0");  
    }  
}

   这样我们就可以在用户请求到达controller层实现登录拦截了,所有用户请求都会被拦截,在prehandle方法进行登录判断,返回true则验证通过,否则失败

版权说明| 关于我们| 合作伙伴| 联系我们| 网站地图| 招贤纳士

Copyright © 2017 www.ijava.com All Rights Reserved 版权所有•ijava学习网 京ICP备14061482号-18         官方QQ:3325669927

ijava学习网提供免费java教程和大量java面试题库,给高级会员提供免费的java培训,同时提共一些java开发项目和java下载,java工程师,java菜鸟们快来哦。记住我们的网站:www.ijava.com