spring-boot 加入拦截器Interceptor
1.spring boot拦截器默认有
- HandlerInterceptorAdapter
- AbstractHandlerMapping
- UserRoleAuthorizationInterceptor
- LocaleChangeInterceptor
- ThemeChangeInterceptor
2.配置spring mvc的拦截器WebMvcConfigurerAdapter
- public class WebAppConfig extends WebMvcConfigurerAdapter
3.实现添加拦截器方法
- public void addInterceptors(InterceptorRegistry registry){
- }
- registry.addInterceptor可以通过此方法添加拦截器, 可以是spring提供的或者自己添加的
4.实例部分
- public class WebAppConfig extends WebMvcConfigurerAdapter{
- public static void main(String[] args) {
- SpringApplication.run(WebAppConfig.class, args);
- }
- /**
- * 配置拦截器
- * @author lance
- * @param registry
- */
- public void addInterceptors(InterceptorRegistry registry) {
- registry.addInterceptor(new UserSecurityInterceptor()).addPathPatterns("/user/**");
- }
- }
- UserSecurityInterceptor代码
- public class UserSecurityInterceptor implements HandlerInterceptor {
- @Override
- public boolean preHandle(HttpServletRequest request,
- HttpServletResponse response, Object handler) throws Exception {
- return true;
- }
- @Override
- public void postHandle(HttpServletRequest request,
- HttpServletResponse response, Object handler,
- ModelAndView modelAndView) throws Exception {
- }
- @Override
- public void afterCompletion(HttpServletRequest request,
- HttpServletResponse response, Object handler, Exception ex)
- throws Exception {
- }
- }
5.demo地址
https://github.com/leelance/spring-boot-all/tree/master/spring-boot-samples
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
- import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
- import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
- import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- @Configuration
- public class WebSecurityConfig extends WebMvcConfigurerAdapter {
- /**
- * 登录session key
- */
- public final static String SESSION_KEY = "user";
- @Bean
- public SecurityInterceptor getSecurityInterceptor() {
- return new SecurityInterceptor();
- }
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- InterceptorRegistration addInterceptor = registry.addInterceptor(getSecurityInterceptor());
- // 排除配置
- // addInterceptor.excludePathPatterns("/error");
- // addInterceptor.excludePathPatterns("/login**");
- // 拦截配置
- addInterceptor.addPathPatterns("/**");
- }
- private class SecurityInterceptor extends HandlerInterceptorAdapter {
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
- throws Exception {
- HttpSession session = request.getSession();
- if (session.getAttribute(SESSION_KEY) != null)
- return true;
- // 跳转登录
- String url = "/login";
- response.sendRedirect(url);
- return false;
- }
- }
- }
spring-boot 加入拦截器Interceptor的更多相关文章
- Spring Boot配置拦截器及实现跨域访问
拦截器功能强大,能够深入方法前后,常应用于日志记录.权限检查和性能检测等,几乎是项目中不可或缺的一部分,本文就来实现Spring Boot自定义拦截器的配置. 理论指导 问:Spring Boot怎么 ...
- spring boot 使用拦截器,注解 实现 权限过滤
http://www.cnblogs.com/zhangXingSheng/p/7744997.html spring boot 使用拦截器 实现 用户登录拦截 http://www.cnblogs. ...
- Spring Boot整合拦截器
过滤器和监听器都属于Servlet 的api,还可以使用 Spring 提供的拦截器(HandlerInterceptor)进行改更精细的控制.
- spring boot 添加拦截器
构建一个spring boot项目. 添加拦截器需要添加一个configuration @Configuration @ComponentScan(basePackageClasses = Appli ...
- spring boot 添加拦截器的简单实例(springBoot 2.x版本,添加拦截器,静态资源不可访问解决方法)
spring中拦截器主要分两种,一个是HandlerInterceptor,一个是MethodInterceptor 一.HandlerInterceptor HandlerInterceptor是s ...
- 【第四十章】Spring Boot 自定义拦截器
1.首先编写拦截器代码 package com.sarnath.interceptor; import javax.servlet.http.HttpServletRequest; import ja ...
- spring boot的拦截器简单使用
1.spring boot拦截器默认有: HandlerInterceptorAdapter AbstractHandlerMapping UserRoleAuthorizationIntercept ...
- Spring Boot之拦截器与过滤器(完整版)
作者:liuxiaopeng 链接:http://www.cnblogs.com/paddix 作者:蓝精灵lx原文:https://blog.csdn.net/liuxiao723846/artic ...
- Spring Boot (20) 拦截器
动态资源和静态资源 拦截器可以算是aop的一种实现,专门拦截对动态资源的后台请求,也就是拦截对控制层的请求,主要用于判断用户是否有权限请求后台.拦截器不会拦截静态资源,如spring boot默认静态 ...
- spring boot使用拦截器
1.编写一个拦截器 首先,我们先编写一个拦截器,和spring mvc方式一样.实现HandlerInterceptor类,代码如下 package com.example.demo.intercep ...
随机推荐
- d3.js 之增加感染力:使用转场效果
转场/transition 图形比数据有感染力,动起来的图形比静态的图形更有感染力. 转场是一种过渡,提供两个稳定状态间的一种动态渐进的变化.转场的概念来源于电影. 电影中存在不同场景之间的切换,比如 ...
- 怎样将Arranged_2压入General_Polygon_set_2中
Thursday, March 14, 2013 How to Jam an Arrangement_2 into a General_polygon_set_2 I spent about thre ...
- PAT 1038 Recover the Smallest Number[dp][难]
1038 Recover the Smallest Number (30 分) Given a collection of number segments, you are supposed to r ...
- Java栈之顺序栈存储结构实现
一.栈的基本定义 栈是一种数据结构,它代表一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性表的尾端)进行插入.删除操作的特殊线性表,通常就是在线性表的尾端进行插入.删除操作. 二.顺序栈的实 ...
- MongoDB的分布式部署
一.分片的概念 分片(sharding)是指根据片键,将数据进行拆分,使其落在不同的机器上的过程.如此一来,不需要功能,配置等强大的机器,也能储存大数据量,处理更高的负载. 二.分片的原理和思想 Mo ...
- matplotlib中的legend()—显示图例
源自 matplotlib中的legend()——用于显示图例 -- 博客园 http://www.cnblogs.com/yinheyi/p/6792120.html legend()的一个用法: ...
- javascript 对象 原型
- SQL各种连接——自连接、内连接、外连接、交叉连接的使用
首先准备了两个表 (Student 和 Course),其中 Student 表中的 C_S_Id 字段为外键列,关联的是 Course 表的 C_Id 主键列. 内连接(inner join):满足 ...
- Maven详解(转)
原文出自: http://www.cnblogs.com/hongwz/p/5456578.html http://ifeve.com/maven-1/ Maven介绍: Maven是一个强大的Jav ...
- Hadoop 2.0 上深度学习的解决方案
原文连接:https://www.paypal-engineering.com/tag/data-science/ 摘要:伴随着数据的爆炸性增长和成千上万的机器集群,我们需要使算法可以适应在如此分布的 ...