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. HDFS基本操作的API

    一.从hdfs下载文件到windows本地: package com.css.hdfs01; import java.io.IOException; import java.net.URI; impo ...

  2. 21.SQL to MongoDB Mapping Chart-官方文档摘录

    有关关系型数据库跟Mongod的语法对比 In addition to the charts that follow, you might want to consider the Frequentl ...

  3. Python并行编程(十一):基于进程的并行

    1.基本概念 多进程主要用multiprocessing和mpi4py这两个模块. multiprocessing是Python标准库中的模块,实现了共享内存机制,可以让运行在不同处理器核心的进程能读 ...

  4. python学习笔记——字符串

    类方法string.upper(str)需要引入string模块,实例方法str.upper()不需要引入string模块 无与伦比的列表解析功能 # coding=utf-8 # 列表解析 prin ...

  5. django中同源策略和跨域解决方案

    一  同源策略 1.1何谓同源? 如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的源. 举个例子: 下表给出了相对http://a.xyz.com/dir/page.html同 ...

  6. Notepad++ 更换主题+字体

    Notepad++ 更换主题 https://blog.csdn.net/haluoluo211/article/details/51922666 延伸: 挑选主题 https://blog.csdn ...

  7. python学习笔记(九)函数返回多个值,列表生成式,循环多个变量,入参格式声明

    一.函数返回多个值 1.函数如果返回多个值的话,它会把这几个值放到一个元组里面2.函数如果返回多个值的话,也可以用多个变量来接收 def say(): num1 = num2 = num3 = ret ...

  8. ActiveMQ简单入门

    一.创建一个简单的Hello World案例 首先需要导入activemq-all-5.14.5.jar包,写生产端: package com.ietree.mq.helloworld; import ...

  9. JAVA_HOME is not defined correctly

    这是个神奇的问题.系统运行着运行着,突然就挂了.各种Java包丢失. 1.检查maven配置 .bash_profile   2.检查运行调取文件  .mavenrc 运行 java -version ...

  10. vmware下安装centos7

    下载vmware http://down-www.newasp.net/pcdown/big/wm_pro_14_win.rar 下载centos7 https://www.centos.org/do ...