1.spring boot拦截器默认有

  • HandlerInterceptorAdapter
  • AbstractHandlerMapping
  • UserRoleAuthorizationInterceptor
  • LocaleChangeInterceptor
  • ThemeChangeInterceptor

2.配置spring mvc的拦截器WebMvcConfigurerAdapter

  1. public class WebAppConfig extends WebMvcConfigurerAdapter

3.实现添加拦截器方法

  1. public void addInterceptors(InterceptorRegistry registry){
  2. }
  3. registry.addInterceptor可以通过此方法添加拦截器, 可以是spring提供的或者自己添加的

4.实例部分

    1. public class WebAppConfig extends WebMvcConfigurerAdapter{
    2. public static void main(String[] args) {
    3. SpringApplication.run(WebAppConfig.class, args);
    4. }
    5. /**
    6. * 配置拦截器
    7. * @author lance
    8. * @param registry
    9. */
    10. public void addInterceptors(InterceptorRegistry registry) {
    11. registry.addInterceptor(new UserSecurityInterceptor()).addPathPatterns("/user/**");
    12. }
    13. }
    14. UserSecurityInterceptor代码
    15. public class UserSecurityInterceptor implements HandlerInterceptor {
    16. @Override
    17. public boolean preHandle(HttpServletRequest request,
    18. HttpServletResponse response, Object handler) throws Exception {
    19. return true;
    20. }
    21. @Override
    22. public void postHandle(HttpServletRequest request,
    23. HttpServletResponse response, Object handler,
    24. ModelAndView modelAndView) throws Exception {
    25. }
    26. @Override
    27. public void afterCompletion(HttpServletRequest request,
    28. HttpServletResponse response, Object handler, Exception ex)
    29. throws Exception {
    30. }
    31. }

5.demo地址 
https://github.com/leelance/spring-boot-all/tree/master/spring-boot-samples

 
想问下,我配置的这个拦截器为啥没有生效呢?
转自:http://lihao312.iteye.com/blog/2078139
 
  1. import org.springframework.context.annotation.Bean;
  2. import org.springframework.context.annotation.Configuration;
  3. import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
  4. import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
  5. import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
  6. import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import javax.servlet.http.HttpSession;
  10. @Configuration
  11. public class WebSecurityConfig extends WebMvcConfigurerAdapter {
  12. /**
  13. * 登录session key
  14. */
  15. public final static String SESSION_KEY = "user";
  16. @Bean
  17. public SecurityInterceptor getSecurityInterceptor() {
  18. return new SecurityInterceptor();
  19. }
  20. @Override
  21. public void addInterceptors(InterceptorRegistry registry) {
  22. InterceptorRegistration addInterceptor = registry.addInterceptor(getSecurityInterceptor());
  23. // 排除配置
  24. //        addInterceptor.excludePathPatterns("/error");
  25. //        addInterceptor.excludePathPatterns("/login**");
  26. // 拦截配置
  27. addInterceptor.addPathPatterns("/**");
  28. }
  29. private class SecurityInterceptor extends HandlerInterceptorAdapter {
  30. @Override
  31. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
  32. throws Exception {
  33. HttpSession session = request.getSession();
  34. if (session.getAttribute(SESSION_KEY) != null)
  35. return true;
  36. // 跳转登录
  37. String url = "/login";
  38. response.sendRedirect(url);
  39. return false;
  40. }
  41. }
  42. }
 

spring-boot 加入拦截器Interceptor的更多相关文章

  1. Spring Boot配置拦截器及实现跨域访问

    拦截器功能强大,能够深入方法前后,常应用于日志记录.权限检查和性能检测等,几乎是项目中不可或缺的一部分,本文就来实现Spring Boot自定义拦截器的配置. 理论指导 问:Spring Boot怎么 ...

  2. spring boot 使用拦截器,注解 实现 权限过滤

    http://www.cnblogs.com/zhangXingSheng/p/7744997.html spring boot 使用拦截器 实现 用户登录拦截 http://www.cnblogs. ...

  3. Spring Boot整合拦截器

    过滤器和监听器都属于Servlet 的api,还可以使用 Spring 提供的拦截器(HandlerInterceptor)进行改更精细的控制.

  4. spring boot 添加拦截器

    构建一个spring boot项目. 添加拦截器需要添加一个configuration @Configuration @ComponentScan(basePackageClasses = Appli ...

  5. spring boot 添加拦截器的简单实例(springBoot 2.x版本,添加拦截器,静态资源不可访问解决方法)

    spring中拦截器主要分两种,一个是HandlerInterceptor,一个是MethodInterceptor 一.HandlerInterceptor HandlerInterceptor是s ...

  6. 【第四十章】Spring Boot 自定义拦截器

    1.首先编写拦截器代码 package com.sarnath.interceptor; import javax.servlet.http.HttpServletRequest; import ja ...

  7. spring boot的拦截器简单使用

    1.spring boot拦截器默认有: HandlerInterceptorAdapter AbstractHandlerMapping UserRoleAuthorizationIntercept ...

  8. Spring Boot之拦截器与过滤器(完整版)

    作者:liuxiaopeng 链接:http://www.cnblogs.com/paddix 作者:蓝精灵lx原文:https://blog.csdn.net/liuxiao723846/artic ...

  9. Spring Boot (20) 拦截器

    动态资源和静态资源 拦截器可以算是aop的一种实现,专门拦截对动态资源的后台请求,也就是拦截对控制层的请求,主要用于判断用户是否有权限请求后台.拦截器不会拦截静态资源,如spring boot默认静态 ...

  10. spring boot使用拦截器

    1.编写一个拦截器 首先,我们先编写一个拦截器,和spring mvc方式一样.实现HandlerInterceptor类,代码如下 package com.example.demo.intercep ...

随机推荐

  1. LInux下桥接模式详解二

    上篇文章导入博客园的比较早,而这篇自己在写的时候才发现内部复杂的很,以至于没能按时完成,造成两篇文章的间隔时间有点长! 话不多说,言归正传! 前面的文章介绍了桥接模式下的基础理论知识,其实本节想结合L ...

  2. python 简单的文件下载

    需要使用urllib2库 import urllib2def download(url, szFileName = ""): #szFileName:下载文件到的目标路径 if s ...

  3. K近邻python

    有一个带标签的数据集X,标签为y.我们想通过这个数据集预测目标点x0的所属类别. K近邻算法是指在X的特征空间中,把x0放进去,然后找到距离x0最近的K个点.通过这K个点所属类别,一般根据少数服从多数 ...

  4. Mybatis框架学习总结-使用Mybatis对表执行CRUD操作

    使用MyBatis对表执行CRUD操作——基于XML的实现 1.创建(create)用户:在userMapper.xml文件中增加: <!-- 创建用户Create --> <ins ...

  5. ambari rest api (三)

    1.获取指定主机指定组件的信息列表 http://ip:8080/api/v1/clusters/hdp_dev/hosts/hadoop003.edcs.org/host_components/DA ...

  6. php使用amqplib方式使用rabbitmq

    安装 sudo apt-get install php sudo apt-get install rabbitmq-server sudo apt-get install php-bcmath php ...

  7. BigData Technique&&Application指南-笔记1

    1.数据的量级 传统企业数据量基本上在TB之上,大型互联网企业达到了PB以上. 2.大量不同的数据类型  结构化数据:是存储在数据库里,可以用二维表来逻辑表达数据.  半结构的非结构化数据:一般都是纯 ...

  8. python3 对excel读、写、修改的操作

    一.对excel的写操作实例: 将一个列表的数据写入excel, 第一行是标题,下面行数具体的数据 import xlwt #只能写不能读 stus = [['姓名', '年龄', '性别', '分数 ...

  9. ios元素定位

    原文地址http://www.cnblogs.com/meitian/p/7373460.html 第一种:通过Appium1.6的Inspector来查看 具体安装方式前面的随笔已经介绍了:http ...

  10. 元类 metaclass

    metaclass 类由Type创建 对象由创建 MetaClass作用 用来指定当前类由谁来创建(默认type创建). MetaClass 会被继承,如果父类指定了元类,那么子类也是由这个元类创建 ...