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. https通讯原理

    https通讯原理 HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息.TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经 ...

  2. POJ-3131-Cubic Eight-Puzzle(双向BFS+哈希)

    Description Let's play a puzzle using eight cubes placed on a 3 × 3 board leaving one empty square. ...

  3. sqlserver表结构查询语句

    SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length FROM syscolumns, systyp ...

  4. shell调用python脚本,并且向python脚本传递参数

    1.shell调用python脚本,并且向python脚本传递参数: shell中: python test.py $para1 $para2 python中: import sys def main ...

  5. js老生常谈之this,constructor ,prototype

    前言 javascript中的this,constructor ,prototype,都是老生常谈的问题,深入理解他们的含义至关重要.在这里,我们再来复习一下吧,温故而知新! this this表示当 ...

  6. 基于nodejs的websocket通信程序设计

    网络程序设计无疑是nodejs + html最好用 一.nodejs的安装 1.在ubuntu上的安装 sudo apt install nodejs-legacy sudo apt install ...

  7. 《FLASH PROGRAMMING 那些事》总结

    注明来自 http://www.ssdfans.com/?p=5589 以MLC为例: 对FGF(Floating Gate Flash)技术的,MLC programming一般分两步走:先prog ...

  8. ruby中的可调用对象--方法

    上一篇讲了ruby中的可调用对象proc和lambda,他们都是块转换成的对象.ruby中的可调用对象还有方法.通过使用method方法,并且以方法名作为参数(字符串或者符号),就可以得到一个方法对象 ...

  9. Maven打包部署

    Maven打Jar包 问题一 Eclipse突然SB告诉我类不存在还让我导包进来O__O "…,但是我明明有这个类.这是不要慌,通过在网上搜索得知:由于eclipse的编译是基于时间戳的判断 ...

  10. 从u-boot的编译结果中提取include目录

    ac@DESKTOP-BJ1MJGM:~/u-boot-2019.01/spl$ arm-linux-gnueabihf-objdump -g u-boot-spl | awk '/The Direc ...