记 测试Interceptor拦截器,一直被拦截到login

SpringMVC使用拦截器(Interceptor)实现用户登录校验 在系统中,经常需要在处理用户请求之前和之后执行一些行为,例如检测用户的权限,或者将请求的信息记录到日志中。当然不仅仅这些,所以需要一种机制,拦截用户的请求,在请求的前后添加处理逻辑。 SpringMVC提供了Interceptor拦截器机制,用于请求的预处理和后处理。在SpringMVC中定义一个拦截器有两种方法:第一种是实现HandlerInterceptor接口,或者继承实现了Handler... 阅读详情

问题如下,一直被拦截到此界面。在这里插入图片描述
造成这样的原因是security框架造成的

<!--引入spring安全框架-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-security</artifactId>
</dependency>

解决方法
如果你不需要这个依赖可以直接删除它,就可以暴力解决一直被重定向login页面的问题。

当然也可以定一个配置类如下:
设置admin角色请求就不会被过滤拦截到login。

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable();
        //首页所有人都可以访问
        http.authorizeRequests().antMatchers("/").permitAll()
                .antMatchers("/admin/**").hasRole("admin");
        http.formLogin().loginPage("/login").loginProcessingUrl("/login");
    }
}

以下继续测试拦截器
定义一个拦截类

public class UserTokenInterceptor implements HandlerInterceptor{
    /**
     * 拦截请求,在controller调用之前
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("进入到拦截器,被拦截...");
        /**
         * false:请求被拦截,被驳回,验证出现问题
         * true:请求在经过验证校验之后是ok的,可以放行的
         */
        return false;
    }

    /**
     * 请求访问controller之后,渲染视图之前
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
		System.out.println("请求接口后,渲染视图之前");
    }
    /**
     * 请求访问controller之后,渲染视图之后
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    	System.out.println("请求接口后,渲染视图之后");
    }
}

在WebMvcConfigurer 实现中注册拦截器

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    /**
     * 实现静态资源的映射
     */
//     @Override
//    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//        registry.addResourceHandler("/**")
//                // 映射swagger2
//                .addResourceLocations("classpath:/META-INF/resources/")
//                // 映射本地静态资
//                .addResourceLocations("file:/workspaces/images/");
//    }
//
//    @Bean
//    public RestTemplate restTemplate(RestTemplateBuilder builder) {
//        return builder.build();
//    }


    @Bean
    public UserTokenInterceptor userTokenInterceptor() {
        return new UserTokenInterceptor();
    }

    /**
     * 注册拦截器
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(userTokenInterceptor())
        		//这是拦截hello接口,也可以设置成“/**”全部拦截
                .addPathPatterns("/hello");
        WebMvcConfigurer.super.addInterceptors(registry);

    }
}

controller层中测试接口

@GetMapping("/hello")
    public Object hello() {
        logger.debug("debug: hello~");
        logger.info("info: hello~");
        logger.warn("warn: hello~");
        logger.error("error: hello~");
        return "Hello World~";
    }

测试
在这里插入图片描述
在这里插入图片描述
修改下注册配置
修改成不拦截hello接口

/**
 * 注册拦截器
 * @param registry
 */
@Override
public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(userTokenInterceptor())
            .addPathPatterns("/**")
            .excludePathPatterns("/hello");
    WebMvcConfigurer.super.addInterceptors(registry);
}

测试不拦截
在这里插入图片描述在这里插入图片描述

java开发笔记:SpringBoot拦截器Interceptor (实现简单的登陆拦截器[白名单,重定向,模拟登陆]) 定义 拦截器顾名思义是拦截打到控制器的请求然后做一些个性化的定制功能比如说302重定向等等,(Interceptor)拦截器相对于(Filter)过滤器可以拦截细一些的东西比如控制请求的方法和控制器,但是控制不了请求方法中的参数。 使用场景 最常用的几个场景 1. 登陆拦截器: 白名单 测试环境表单模拟登陆 登陆状态拦截并302重定向login页面 2. 国际化 3. 鉴权 拦截顺序 方法执行顺序 preHandle -> Controll... 阅读详情

相关推荐

当传统CFD遇上AI:PINN如何帮我们省下90%的仿真计算时间?

本文探讨了物理信息神经网络(PINN)在计算流体力学(CFD)中的应用,如何通过无网格方法节省90%的仿真计算时间。PINN将物理定律编码到神经网络中,显著减少传统CFD中的网格生成和计算时间,同时保持高精度。文章还对比了PINN与传统方法的性能,并讨论了其独特优势和当前局限。

weixin_32678995的博客 320

java url 拦截_Spring mvc设置某些url不被interceptor拦截器拦截的方法

我们的Java类继承HandlerInterceptorAdapter类之后,实现里面的preHandle与postHandle方法,默认情况下所有的url都会被spring mvc拦截器所拦截,因为我们用拦截器来过滤用户是否处于登录状态,所以一般情况下跳转到登录界面,以及提交登录信息的URL都不应该被interceptor所拦截,否则用户就永远登录不上去了。要配置某些url不被拦截器所拦截,就需...

weixin_31691749的博客 2134

kbjdbc: autodetected server-encoding to be ISO-8859-1, if the message is not readable, please check

这条信息是来自 KingbaseES 数据库的一个 JDBC 客户端连接提示。KingbaseES 是一个企业级的关系型数据库管理系统,它兼容 PostgreSQL 的许多特性。如果上述步骤仍然无法解决问题,建议详细查看数据库和客户端的日志文件,以获取更具体的错误信息。此外,也可以考虑联系 KingbaseES 的技术支持获取帮助。项目融合kingbase数据库,输出日志乱码。结果:网上各种调整各种试。

zjy660358的专栏 4843

SpringBoot实现登录拦截功能

springboot 实现登录拦截功能,避免恶意登录

weixin_44431073的博客 2657

MaaS 商业模式全面分析报告:从技术赋能到商业变现的全链条探索

MaaS(模型即服务)商业模式正成为AI产业主流,2024年上半年中国市场规模达2.5亿元,预计2027年占比将提升至47%。该模式通过云服务提供预训练AI模型,大幅降低企业应用AI的技术门槛和成本。核心盈利方式包括按使用量计费、订阅制、定制化服务等,其中混合模式因灵活性成为趋势。MaaS产业链包含模型提供商、云平台、应用开发商和最终用户,重塑了AI产业格局。随着《数据法案》等监管加强,数据增值服务面临更严格合规要求。未来五年,中国MaaS市场增速预计超50%,用户规模将从2025年2.1亿增至2030年5

芯片行业20年 · 参与定义实现千万级量产出货 · AI芯片PM 2892

ERA5数据批量下载

ERA5再分析数据的IDM接管下载

qq_38734327的博客 3034

Interceptor登录拦截(Spring拦截器)

Interceptor登录拦截 拦截器HandlerInterceptor接口有三个回调方法 1.preHandle方法,顾名思义,该方法将在请求处理之前进行调用。SpringMVC 中的Interceptor 是链式的调用的,在一个应用中或者说是在一个请求中可以同时存在多个Interceptor 。每个Interceptor 的调用会依据它的声明顺序依次执行,而且最先执行的都是Inte

cherry_xiu的博客 8186

STM32 bootloader程序跳转到APP卡死在B_ENDP_ALIGN,原因:有未处理的中断。解决方法:重启系统

Bootloader和App中都用到了串口,定时器等,所以从Bootloader跳转App后未卡死。 后来写的另一个App里没有用到这几个外设,然后就是无限的卡死。 现在Bootloader中跳转App之前将已打开的外设关掉,再跳转至App就不再出现卡死。  if(((*(vu32*)(APPLICATION_ADDRESS+4))&0xFF000000)==0x08000000) {

jingzhixingyun的博客 7920

登录拦截

登录拦截 OK,比较常见的就是Spring Security安全框架,为的就是保护接口不被直接调用,只有通过登录后,才可以调用项目内的接口,这里呢,我讲一种比较常见的用法,利用session和拦截器解决这个问题 我们一步一步分析一下, 1、首先我们要拦截所有的请求,这里要注意的是要对登录等接口进行放行 2、要对拦截下的所有请求进行处理,判断用户是否有权限调用,才可以进行放...

weixin_41905099的博客 2075

Ollama + OpenCLAW 在 Windows 系统的完整部署指南

Windows 部署优先选 WSL2,避免原生环境的权限/兼容性问题;网络问题通过“离线包+国内镜像”解决,版本问题通过升级 Node.js 解决;内存不足可切换轻量模型或增大 WSL2 内存分配;核心链路:Ollama(模型管理)→ Gateway(网关)→ OpenCLAW TUI(交互),各组件启动正常即可稳定使用。

lpfasd123的博客 2824

详解Linux下使用vscode编译运行和调试C/C++

本教程将具体详解使用Visual Studio Code在Linux环境下使用C/C++方法。 GCC C++ 编译器 (g++) 和 GDB 调试器的方法。 GCC是GNU 编译器集合; GDB 是 GNU 调试器。 1.先决条件 安装Visual Studio Code. 安装C++拓展插件。点击在vscode界面最左侧的Extensions图标(打开快捷键:ctrl+shift+X),搜索“C/C++”,点击进行安装。 确保已安装gcc. 一般ubuntu系统会预装gcc.在终端窗口中输入如下命令

休的博客 6241

Springboot 拦截器(Interceptor)详解

​ 拦截器Interceptor,是SpringMVC中的核心内容,利用spring的AOP(Aspect Oriented Programming, 面向切面编程)特性,可以很方便的对用户的业务代码进行横向抽取,根据具体业务需求对应用功能进行增强。 ​ 在SpringBoot中使用Interceptor,同时采用全注解开发,涉及到以下接口和类: HandlerInterceptor:处理器拦截器,handler就是处理器,在springboot web开发中,由控制器来处理web请求,因此handl

Java是世界上最好的语言 8313

黑猫带你学UFS协议第23篇:UFS固件升级操作详解(FFU)

摘要:本文介绍了UFS固件更新(FFU)的实现方法与注意事项。根据UFS3.1 JEDEC协议,FFU通过write buffer命令(MODE=0Eh)下载FW固件,随后必须进行power cycle或硬件复位生效。文章详细阐述了FFU操作的10条规则,包括数据分片传输要求、寄存器访问限制等,同时指出协议未明确的厂商实现差异。关键寄存器包括bFFUTimeout、bDeviceFFUStatus和fPermanentlyDisableFwUpdate。

黑猫奥利奥的博客 1万+

JavaWeb——登录(15/16): 登录校验-实现Interceptor-登录校验拦截器(介绍、拦截的流程、实现登录拦截器、注册拦截器)

在 JavaWeb 开发中,拦截器(Interceptor)是用于对请求进行预处理和后处理的组件。本文主要介绍如何使用。其他两个方法在控制器执行之后才运行,已经没有校验的意义。进行,因此应放在 preHandle()学习自:黑马程序员——JavaWeb课程。,确保只有已登录用户才能访问特定资源。,取代传统的过滤器(Filter)。,拦截未授权请求,保障系统安全。

li13437542099的博客 1395

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SpringBoot 拦截器 Interceptor

SpringBoot 拦截器 Interceptor项目目录结构拦截器拦截器注册控制器(便于测试)控制器(便于测试)参考资料 项目目录结构 拦截器 拦截器三个方法的详细介绍请看Spring MVC 学习笔记 7《拦截器(Interceptor)》 /demo/src/main/java/com/jerry/demo/interceptor/AuthInterceptor.java package...

灵台方寸山斜月三星洞 728

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

springboot基于拦截器实现登录权限拦截

一、需求 系统中,除登录接口/login以外,其他所有接口,必须用户登录后才能访问。 二、实现 创建一个拦截器,拦截除/login以外的所有请求,校验用户是否已登录,如果已登录,则放行,否则拦截请求,给出未登录信息提示。 创建LoginInterceptor类,实现HandlerInterceptor接口,重写preHandle方法 package com.yclouds.servic...

IT小跟班 4423

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

SpringBoot-Interceptor拦截器实现登录验证

首先关闭浏览器,重新打开浏览器,在地址栏中输入:http://localhost:9528/#/system/dept。到此我们也就验证了所开发的登录校验的拦截器也是没问题的。登录校验的过滤器和拦截器,我们只需要使用其中的一种就可以了。登录校验的业务逻辑以及操作步骤我们前面已经分析过了,和登录校验Filter过滤器当中的逻辑是完全一致的。由于用户没有登录,校验机制返回错误信息,前端页面根据返回的错误信息结果,自动跳转到登录页面了。登录校验的拦截器编写完成后,接下来我们就可以重新启动服务来做一个测试: (

apple_51927114的博客 486

springboot Interceptor拦截器excludePathPatterns失效

springboot Interceptor拦截器excludePathPatterns失效 使用jwt和HandlerInterceptorAdapter做登录的拦截放行失效 拦截器: 配置文件: 这里将登录路径即/admin/yanxue/user/login在addInterceptors中放行后登录请求却报错用户未登录: 第一种情况:参数导致的路径不匹配:比如我们需要传入的参数...

weixin_43303530的博客 6844

Spring Boot拦截器

在 Spring Boot 中定义拦截器十分的简单,只需要创建一个拦截器类,并实现 HandlerInterceptor 接口即可。HandlerInterceptor 接口中定义以下 3 个方法,如下表。返回值类型方法声明描述booleanServlet该方法在控制器处理请求方法前执行,其返回值表示是否中断后续操作,返回 true 表示继续向下执行,返回 false 表示中断后续操作。void。

xiatianit的博客 1213

登录校验-Interceptor-登录校验拦截器

登录校验-Filter-登录校验过滤器_熵240的博客-优快云博客。

weixin_64939936的博客 233

SpringMVC拦截器入门及登录拦截器的实现

1 拦截器定义 Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理 2 自定义拦截器类 自定义一个拦截器类需要实现HandlerInterceptor接口 2.1 preHandle方法  Controller执行前调用此方法  返回true表示继续执行,返回false中止执行  这里可以加入登录校验、权限拦...

Keeping Ready, Keeping Coding 335

Java web登录拦截器_springmvc interceptor拦截器判断用户是否登录

当我们需要进行用户验证的时候,会使用到springmvc interceptor拦截器判断用户是否登录,如果用户没有正确登录,就需要让用户跳转到登录页面,如果登录,则能正常访问,那么我们该如何使用springmvc拦截器来做这一个功能呢?springmvc interceptor拦截器和filter过滤器差不多,但是interceptor拦截器只能拦截Controller请求,而filter过滤器...

weixin_35900383的博客 681

Interceptor拦截器+JWT令牌实现登陆验证

与过滤器的作用类似,不过拦截器是spring中的组件,只能拦截进入spring的请求;过滤器则可以拦截所有从前端页面发送来的请求。

weixin_54039182的博客 732

[Spring MVC] - Interceptor 拦截器

Spring MVC中的Interceptor与Struts2的差不多。 下面是一个简单的Interceptor登陆验证例子: 1、需要在spring的配置文件中加入这段: <!-- 自定义拦截器 --> <mvc:interceptors> <mvc:interceptor> ...

aili2460的博客 117

springboot使用拦截器interceptor

实现HandlerInterceptor,重写3个方法并向spring容器添加组件 package com.mqb.springboot02.interceptor; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import .

Java精灵 333

springboot 拦截器_Springboot未登录请求拦截器实现

Springboot未登录请求拦截器实现之前用过struts2的同学了解,未登录请求拦截可以通过自定义Interceptor实现,在springboot项目中也有对应的解决方案:自定义Interceptor extends HandlerInterceptorAdapter,重写preHandle方法自定义WebMvcConfig实现WebMvcConfigurer接口, 实现addInterce...

weixin_39693662的博客 385
上一篇: 记-linux scp远程复制文件出错
下一篇: SpringBoot参数校验和处理
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值