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. 【chainer框架】【pytorch框架】

    教程: https://bennix.github.io/ https://bennix.github.io/blog/2017/12/14/chain_basic/ https://bennix.g ...

  2. 确定比赛名次---hdu1285(拓扑排序)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 拓扑序就是求一个序列 数 a 出现在数 b 前面,最终输出满足条件的序列即可: 过程就是每次选取 ...

  3. Spring的IOC底层实现

    IOC的底层实现 续图:

  4. postgresql导出sql执行结果到文件的方法(转)

    原文:http://blog.sina.com.cn/s/blog_840dd283010178jz.html 对于一些特殊字符,比如字符

  5. 如何删除Docker中的镜像相关

    1.正常情况下 1.停止所有的container,这样才能够删除其中的images: docker stop $(docker ps -a -q) 如果想要删除所有container的话再加一个指令: ...

  6. 前端 javascript 定时器

    setInterval("执行的代码",间隔时间)毫秒单位 每5秒一次会提示出弹框 <!DOCTYPE html> <html lang="en&quo ...

  7. img 标签注意 默认img标签,有一个1px的边框 img{ border: 0; }

    默认img标签,有一个1px的边框 img{ border: 0; }

  8. 深入浅出java IO模型

    一.同步和异步 同步:一个事件或者任务的执行,会使整个流程暂时等待,也就是说如果有多个任务要执行,必须要逐个进行. 异步:一个事件或者任务的执行,不会使整个流程暂时等待,也就是说如果有多个任务要执行, ...

  9. 出现 Request Entity Too Large问题的解决方法

    根据经验判断应该是上传文件大小被限制了,检查了应用配置是10M,把它设置成100M,重启服务也不能解决问题. 原来我们的tomcat是通过nginx发现服务代理的,问题就出现nginx服务器上,原来n ...

  10. 打开关闭oracle自动表分析

      oracle 表的统计信息,跟他的执行计划很有关联 执行计划的正常是否,跟SQL的执行速度很有关系 首先讲解一下如何查看一个数据库的是否开启自动统计分析 1.查看参数:STATISTICS_LEV ...