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 ...
随机推荐
- 【opencv】c++ 读取图片 & 绘制点 & 绘制文字 & 保存图片
//read pic ]; sprintf(path, "%s%d/%s", image_dir.c_str(), cam_num, filename.c_str()); cv:: ...
- 011-HQL中级1-Hive快捷查询:不启用Mapreduce job启用Fetch task三种方式介绍
如果你想查询某个表的某一列,Hive默认是会启用MapReduce Job来完成这个任务,如下: hive; Total MapReduce jobs Launching Job out since ...
- PHP命名空间-总结
首先创建三个文件: one.php.two.php.three.php one.php namespace a\b\c; class Type { function getInfo(){ echo & ...
- 利用ssh的私钥登录Linux server
[https://blog.csdn.net/hello0370/article/details/41650513] 1.创建一个private key的文件,我使用vim编辑器,创建vi my_pr ...
- 手把手教你发布自己的 Composer 包
一.前言 Composer 是 PHP 用来管理依赖(dependency)关系的工具.我们不仅要学会使用别人提供的包,更要学会制作和分享自己的软件包,下面演示如何创建一个自己的 Composer 包 ...
- 下载.iso类型的软件如何安装
法一:这种类型的文件为镜像文件,一般默认在虚拟光驱上运行.通常的做法为: 安装Daemon Tools 虚拟光驱,可以打开CUE.ISO.CCD等这些虚拟光驱的镜像文件,并且将文件虚拟到光盘上使用.运 ...
- Python 控制台进度条的实现
进行爬虫等耗时的任务时,有时会想在控制台输出进度条,以显示当前任务进度.这里总结了两种方法. 方法1:使用tqdm模块 示例代码: from time import sleep from tqdm i ...
- 84. Largest Rectangle in Histogram(直方图最大面积 hard)
Given n non-negative integers representing the histogram's bar height where the width of each bar is ...
- PV、TPS、QPS是怎么计算出来的?
PV=page viewTPS=transactions per secondQPS=queries per secondRPS=requests per second RPS=并发数/平均响应时间 ...
- Java并发包中线程池的种类和特点介绍
Java并发包提供了包括原子量.并发集合.同步器.可重入锁.线程池等强大工具这里学习一下线程池的种类和特性介绍. 如果每项任务都分配一个线程,当任务特别多的时候,可能会超出系统承载能力.而且线程的创建 ...